美文网首页
Appium切换webview后采坑记录

Appium切换webview后采坑记录

作者: 深海鱼游 | 来源:发表于2021-05-09 08:41 被阅读0次

    Appium切换webview后采坑记录

    1、安卓端appium 切换webvivew

    问题使用switch_to.context()切换时总是提示版本不对应(报错如下)

    selenium.common.exceptions.WebDriverException:Message:An unknown server-side error occurredwhileprocessing the command. Original error:No Chromedriverfoundthat can automate Chrome'74.0.3729'. See https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/web/chromedriver.md formore details. You could alsotryto enable automated chromedrivers download server feature

    原因app内部集成的三方webvivew查看app内部的webvivew版本是(69.0.3497.100)而手机原生webvivew是74.0.3729'版本

    解决方法需要下载与app内部集成webvivew版本相同的Chromedriver版本且手机内置原生webvivew不超过app内部集成的webvivew版本

    备注如果app内使用的系统原生webvivew则只需要按照报错中的版本下载对应的Chromedriver版本替换掉appium中的Chromedriver版本即可

    2、Appium webview 下的 click () 事件无响应

    问题明明appium脚本显示pass但实际没任何反应

    原因原来很多webview界面的元素监听的是tap事件不是click事件。

    解决方法使用selenium的TouchActions里的tap事件代码如下(可以自行封装后调用)

    fromselenium.webdriver.common.touch_actionsimport TouchActions

    el = driver.find_element_by_css_selector("")

    TouchActions(driver).tap(el).perform()

    3、定位到元素时无法点击

    问题定位到元素时点击报错提示

    selenium.common.exceptions.WebDriverException:Message:An unknown server-side error occurredwhileprocessing the command. Original error:unknown error:Element isnotclickable at point (180,506). Other element would receive the click:

    原因页面元素已经加载完成但是页面还未完全显示出来还在加载点击不生效

    解决方法这个地方受网络波动影响尤其是跨页面进行操作建议保持网速稳定且使用sleep多设置几秒保证页面完全加载

    4、页面内有此元素但是从其他页面跳转过来后提示未找到

    问题当前页面肯定有此元素但是从其他页面跳转至该页面后提示未找到此元素

    原因页面发生跳转时还未跳转成功代码片段就已经执行导致元素未找到

    解决方法设置元素等待

    (1)隐式等待(推荐使用)在代码前部分加implicitly_wait() 整个的程序运行过程中都会有效都会等待元素加载完成不需要像sleep一样每次要设置一遍。在设置的时间内没有加载到整个页面则会报NosuchElementError。

    (2)sleep强制等待不推荐使用倘若你设置sleep等待时间设置太长元素可能已经加载出来了但是由于你设置过长程序会一直等待你设置的时间过完才执行这样会影响代码整体的运行效率。

    (3)显示等待WebDriverWait()未考虑使用

    相关文章

      网友评论

          本文标题:Appium切换webview后采坑记录

          本文链接:https://www.haomeiwen.com/subject/ofrmdltx.html