出门莫恨无人随,书中车马多如簇。这篇文章主要讲述Appium解决native+webview混合型APP(公众号小程序)切换webview后元素无法定位问题相关的知识,希望能为你提供帮助。
问题:最近在做一个安卓+H5混合开发的APP自动化测试,发现在从native切换到webview后,元素仍然无法找到,报错:no such element
思路:于是思考webview会不会像web页面一样存在多个handles呢?用window_handles去取所有的handle,发现果然不止一个。接下来就要确定所要操作的元素具体在哪一个handle,使用switch_to_window(handle),如果可以找到我们需要的元素,说明元素在这个handle,就可以继续后面的自动化操作。
实现:
all_handles = driver.window_handles for handle in all_handles: try: driver.switch_to_window(handle) print(handle) driver.find_element(‘xpath‘, "//div[2]/div/div/div/div[2]/div/button")
print(‘元素定位成功‘) driver.click(‘xpath‘, "//div[2]/div/div/div/div[2]/div/button") driver.send_keys(‘125808119‘, ‘xpath‘, ".//*[@id=‘phone_login‘]/div[2]/div/input") driver.send_keys(‘1001‘, ‘xpath‘, ".//*[@id=‘phone_login‘]/div[3]/div/input") driver.send_keys(‘111111‘, ‘xpath‘, ".//*[@id=‘phone_login‘]/div[4]/div/input") driver.click(‘xpath‘, "//div[6]/div[2]/div/button") sleep(2)
break except Exception as e: print(e)
【Appium解决native+webview混合型APP(公众号小程序)切换webview后元素无法定位问题】
推荐阅读
- Android中Activity中访问数据库操作记录
- Appium行为事件处理
- Android OkHttp, 一行代码 OkHttp提升请求稳定性
- Android OkHttp + Retrofit 取消请求的方法
- 关于Sketch中的版式可能不知道的事情
- Web和印刷设计的字体样式
- 拟态,平面设计和字体设计的兴起
- 使用这些顶级UX工具掌握你的手艺
- 形式和功能–顶级线框工具指南