【问题标题】:every day xpath are changing [closed]每天xpath都在变化[关闭]
【发布时间】:2019-01-06 11:40:31
【问题描述】:
driver.findElement(By.xpath("//*[@id=\"__box23-arrow\"]")).click();dropdown
        driver.manage().timeouts().implicitlyWait(50, TimeUnit.SECONDS);
        Thread.sleep(5000);
        driver.findElement(By.xpath("//*[@id=\"__item1283-__box23-2\"]")).click();

每次我的 xpath 更改 //*[@id=\"__box23-arrow\ example //*[@id=\"__box24-arrow\,我都在为 SAP 做自动化,你能提供任何其他解决方案吗

【问题讨论】:

  • 添加目标元素的相关 HTML
  • HTML 代码是必需的。

标签: java selenium sap


【解决方案1】:

如果您的 xpath 总是在变化,为了让您的 Selenium 代码至少可以工作,它的变化方式应该有一些模式,例如它可能取决于当前日期。然后,您可以相应地编写代码以在每次运行脚本时动态生成 xpath。如果没有这样的模式并且没有静态内容可以在 xpath 中使用contains,您应该查看其他工具,例如Sikuli。它使用图像识别来识别您的元素。这再次假设您的元素的可见方面保持不变。

还有一波由人工智能驱动的新测试产品,如Testim,它们是“自我修复”,这意味着它们将适应源代码的变化。我没有使用它们,但它们可能是您想要的。

【讨论】:

  • 嗨 @shivam 我正在使用带有 selenium 的 Sikuli,我的项目没有在命令提示符下运行,詹金斯你能建议我为此做些什么。错误是 java.lang.NoClassDefFoundError: org/sikuli/script/Screen .
  • @PoojaPathange 提出了另一个带有适当细节的问题。然后,您可以将问题的链接发送给我的linkedin 个人资料(链接在我的简历中)。谢谢
  • 我被阻止提出新问题,不知道为什么我需要帮助才能在命令提示符和 jenkins 中运行我的 Selenium + sikuli 项目。当前项目在 ecplise 中运行。
  • @PoojaPathange 请将完整详细信息分享到我的linkedin 个人资料或Skype id:Shivam.kiwiqa
【解决方案2】:

根据您与我们共享的 HTML,您可以尝试使用此 xpath

//span[@role='button' and contains(@class,'sapMComboBoxArrow sapMComboBoxBaseArrow sapMComboBoxTextFieldArrow')]

【讨论】:

    【解决方案3】:

    您也可以使用 contains 关键字编写动态 xpath。

    请参考下面的例子-

    //a[contains(@id, 'ctl00_btnAircraftMapCell') 
    

    【讨论】:

    • 以上是 sap id 这个 id="__box24-arrow" 总是会改变。任何其他可能的写 xpath 的方式
    【解决方案4】:

    如果您知道在这种情况下始终是静态的 id 的开头,您可以选择

    "//*[@id*='__box']"
    

    这将为您提供 id 以“__box”开头的元素

    希望这会有所帮助!

    【讨论】:

    • xpath 没有*=,它用于cssSelector
    • @Guy 抱歉忘了提到那部分。谢谢.. PoojaPathange 你必须使用 cssSelector 而不是 xpath
    • @KarthikeyanR css 选择器路径未执行
    • 以上是 sap id 这个 id="__box24-arrow" 总是会改变。任何其他可能的方式来编写 xpath –
    猜你喜欢
    • 2017-11-18
    • 2022-10-15
    • 2016-04-04
    • 1970-01-01
    • 1970-01-01
    • 2018-05-08
    • 2021-10-19
    • 2018-07-12
    • 2018-04-01
    相关资源
    最近更新 更多