【问题标题】:Selenium on AWS Device Farm cant locate element by xpathAWS Device Farm 上的 Selenium 无法通过 xpath 定位元素
【发布时间】:2018-03-05 19:59:37
【问题描述】:

我是 ADF 的新手。我正在编写混合测试脚本,我想知道为什么在 Amazon Device Farm Appium JUnit 上无法通过其 xpath 找到元素。

我测试过,我可以做到这一点:

action.click(By.id("menu"), "Click on menu");

但我不能这样做:

action.click(By.xpath("//*[@id=\"menu\"]"), "Click on menu");

我有几个操作系统测试脚本,我曾经在 SauceLabs 上进行过测试,但我没有遇到任何问题。它可以识别屏幕上显示的所有元素,但我没有找到任何解释为什么 AWS Device Farm 不接受 xpath。

编辑: 错误信息

AppTest failed: Argument was an invalid selector (e.g. XPath/CSS). (WARNING: 
The server did not provide any stacktrace information) Command duration or 
timeout: 151 milliseconds For documentation on this error, please visit: 
http://seleniumhq.org/exceptions/invalid_selector_exception.html Build info: 
version: '3.1.0', revision: 'b94c902', time: '2017-02-16 12:21:31 -0800' 
System info: host: 'ip-172-31-13-65', ip: '172.31.13.65', os.name: 'Linux', 
os.arch: 'amd64', os.version: '3.13.0-139-generic', java.version: 
'1.8.0_151' Driver info: io.appium.java_client.android.AndroidDriver `

【问题讨论】:

    标签: selenium selenium-webdriver aws-device-farm


    【解决方案1】:

    如果您正在测试一个 Android 应用,这个xpath 应该可以工作。

    By.xpath("//*[contains(@resource-id,'menu')]")
    

    另外,不要忘记设置automationName 所需的功能。

    capabilities.setCapability("automationName", "uiautomator2");
    

    【讨论】:

      【解决方案2】:

      这应该可行:

      action.click(By.xpath("//*[@id='menu']"), "Click on menu");
      

      如果没有,try your xpath expression 直到它有效为止。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-10-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多