ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

填坑webUI自动化-下拉选择元素

2021-06-19 11:35:57  阅读:223  来源: 互联网

标签:el loc self driver find click 填坑 webUI 下拉


 

 

 看着是readyonly,尝试js移除readonly属性,然后直接send_keys

# 输入元素 下拉框方法封装 #直接sendkeys不行,不会往下走
def base_send_keys(self, loc, value):
# 先找到元素
el = self.base_find(loc)
self.driver.execute_script("document.getElementsByTagName('input')[0].removeAttribute('readonly');")
self.driver.execute_script("document.getElementsByTagName('input')[1].removeAttribute('readonly');")
# 输入
el.send_keys(value)
send是send进去了,但是带不出来下一个NOSTRO CODE的值,要点击一下才能触发去带出来对应的值

好换一种:
# 选择下拉元素方法封装
def base_select(self, loc,value):
Select(self.driver.find_element_by_xpath(loc)).select_by_visible_text(value)
#Message: Select only works on <select> elements, not on <li>
确实不是个正经的下拉框

 

 

正常还可以用actionchain,不过也失败了,代码被我改过了,不粘了

 

最后写了个demo

def test_demo(self):
options = Options()
options.add_experimental_option ("debuggerAddress", "127.0.0.1:9222")
self.driver = webdriver.Chrome(options = options)
_iframe_loc = self.driver.find_elements(By.CSS_SELECTOR,'.iframe')#//*[@id="pane-#CBIBANK"]/iframe
self.driver.switch_to.frame(_iframe_loc[1])
self.driver.find_element_by_xpath("//*[@class='el-input__inner']").click()
# els = self.driver.find_elements_by_xpath('//li[@class="el-select-dropdown__item"]')
# for el in els:
# # print(el.get_attribute("outerText"))
# if "SIGNATURE BANK" in el.text:
# el.click()
el = self.driver.find_element_by_xpath('//li[@class="el-select-dropdown__item"]/span[contains(text(),"SIGNATURE BANK")]')
print(el)
self.driver.execute_script("arguments[0].click();",el)
# # print(els)

发现先找到元素,然后用js点击是可行的
#下拉框找到元素,js,click
def base_js_click(self,el):
self.driver.execute_script("arguments[0].click();",el)

 

标签:el,loc,self,driver,find,click,填坑,webUI,下拉
来源: https://www.cnblogs.com/Henna/p/14902406.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有