问题:最近在作一个安卓+H5混合开发的APP自动化测试,发如今从native切换到webview后,元素仍然没法找到,报错:no such elementweb
思路:因而思考webview会不会像web页面同样存在多个handles呢?用window_handles去取全部的handle,发现果真不止一个。接下来就要肯定所要操做的元素具体在哪个handle,使用switch_to_window(handle)切换,若是能够找到咱们须要的元素,说明元素在这个handle,就能够继续后面的自动化操做。测试
实现:spa
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)