Appium app 中两个 H5 页面之间切换后,后一个页面打印出来的是前一个页面的元素该如何处理

枫叶 · 2018年04月19日 · 最后由 枫叶 回复于 2018年04月20日 · 2031 次阅读

有看到相关帖子里提到解决方法,但都不是很清楚,比如说强制杀掉 chromedriver.exe 进程等,但是里面只描述了 java 语言的处理方法,那 python 该怎样处理呢,麻烦有知道解决方法的详细说下,感谢

—— 来自 TesterHome 官方 安卓客户端

共收到 7 条回复 时间 点赞

切换到原生再切换到 webview 试试

雨夜狂奔 回复

试了下,还是不行

如果是 H5 页面,用 chrome inspect 查询出有两个或者以上多个页面同时加载出来,可以考虑一下先 get all window handles 之后在 switch window

Ambers 回复

从 chrome:inspect 中看虽然是两个页面,但同属一个 webview 下的,所以应该不是你说说的那个问题导致

这边通过网上搜索,发现确实需要先杀掉 chromedrive.exe 的进程后才能定位到第二个 H5 页面的元素,这边把具体方法列举下:
首先声明,本方法适用 python 语言
1.
先切出 webview(方法就不累赘了,应该都知道)
import subprocess
subprocess.Popen('taskkill /F /im chromedriver.exe', shell=True, stdout=subprocess.PIPE)
sleep(5)# 这个等待时间很重要,如果没有这个等待时间,那可能会因为上一步杀掉了进程而报错
再切入 webview(同样方法)
print self.driver.page_source# 打印出页面元素,判断是否切到你要的页面

注:如有任何疑问可以留言一起讨论哈

要杀掉前个页面的进程

笑哼 回复

是的

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册