美文网首页Appium
Appium Appium 1.10.0版本 BUG:使用 ge

Appium Appium 1.10.0版本 BUG:使用 ge

作者: Luniver | 来源:发表于2019-03-10 23:20 被阅读8次

    现象

    Appium 1.9版本使用driver.get_window_size()会报错,提示selenium.common.exceptions.WebDriverException: Message: The URL '/wd/hub/session/2763af95-8c0c-4533-8b73-0eae25e5a026/window/size' did not map to a valid resource

    (在appium 1.4版本执行get_window_size方法没有问题,可以得到正确返回,应该是1.9版本的bug, 1.9版本改变了执行get_window_size方法对应的GET请求地址)

    环境

    Appium 1.10.0

    Python 3.7

    Selenium 3.3.1

    Appium Log

    [HTTP] --> GET /wd/hub/session/2763af95-8c0c-4533-8b73-0eae25e5a026/window/size

    [HTTP] No route found. Setting content type to 'text/plain'

    [HTTP] <-- GET /wd/hub/session/2763af95-8c0c-4533-8b73-0eae25e5a026/window/size 404 1 ms - 106

    appium报错信息

    解决方法:

    通过查看官方文档和appium log得知,当执行driver.get_window_size()时,Python脚本通过向地址 “http://127.0.0.1:4723/wd/hub/session/:session_id/window/size” 发送get请求给appium-server,appium-server再发送命令给mobile获得mobile返回的window_size,然后返回给client。

    查看官方文档:get_window_size方法的实际请求地址为: /wd/hub/session/:session_id/window/:window_handle/size

    参考:http://appium.io/docs/en/commands/web/window/get-window-size/index.html#appium-clients

    通过追踪selenium源码,发现在执行get_window_size时发送的请求URL为:

    /session/$sessionId/window/size

    源码路径:python-path\Lib\site-packages\selenium\webdriver\remote\remote_connection.py 

    对比得知,selenium get_window_size方法请求的URL和appium执行get_window_size方法对应的路径不同,通过修改selenium源码变更get_window_size的请求路径为:

    Command.W3C_GET_WINDOW_SIZE: ('GET', '/session/$sessionId/window/$windowHandle/size'),

    结果

    再次执行driver.get_window_size(),得到正确返回。

    相关文章

      网友评论

        本文标题:Appium Appium 1.10.0版本 BUG:使用 ge

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