Airtest+Python自动化-list处理

今天碰到一个问题关于下拉菜单如何选择,为此专门查看了airtest的新手教程,也成功在教程中找到关于下拉菜单的处理-select的运用
Airtest+Python自动化-list处理
Airtest+Python自动化-list处理
Airtest+Python自动化-list处理
此种方法确实可以处理关于select的元素选择,可是我在使用中却出现了报错
Airtest+Python自动化-list处理
此时个人理解是因为元素隐藏了,所以dom无法找到,那么需要先点击页面使元素出现
于是添加了先点击下拉菜单的事件,但仍然出现了同样的报错
Airtest+Python自动化-list处理
此时开始尝试其他方式解决选择问题,于是有了使用keyevent的想法

driver.find_element_by_xpath("//*[@id=‘js-company’]/div[1]/div[1]/div[1]/button/span[2]/span").click()

sleep(2)

# 获取当前连接的窗口

dev = device()

dev.keyboard.SendKeys("{DOWN}")

dev.keyboard.SendKeys("{ENTER}")

无论如何改变xpath定位均显示无法输入
Airtest+Python自动化-list处理
于是开始上网查询其他方法,期间重新观察定位发现select元素无法定位到该下拉菜单,而是在Ul/li中定位,于是查询ul/li定位方式
ul=driver.find_element_by_xpath("//[@id=‘js-company’]/div[1]/div[1]/div[1]/div/ul")
lis=ul.find_elements_by_xpath(‘li’)
print(len(lis))
lis[-1].text
lis[-1].click()
此时依然显示element not visible,最终在上述语句前加上了
driver.find_element_by_xpath("//
[@id=‘js-company’]/div[1]/div[1]/div[1]/button").click()
仍然采用先点击该元素使出现下拉菜单的方式在执行循环点击list中元素,问题解决