【问题标题】:Selenium webElement property changeSelenium webElement 属性更改
【发布时间】:2015-05-02 09:51:34
【问题描述】:

我正在使用 selenium 自动化应用程序。没有像 id、tag 这样的普通标签,我可以通过这些标签找到元素。所以我使用的是 xpath[driver.findElement(By.xpath())]。但是现在我发现 WebElement 的某些 xpath 在运行时会动态变化,因此我的测试用例失败了。即使是相对 xpath 选项也不适用于 HTML。我正在粘贴 AUT 的 html 的一部分。请让我知道如何处理这种情况。

<div>
<button class="btn btn-primary ng-hide" ng-click="unlockOrder('/content/boss/en/dashboard');" ng-show="enableUnlockButton" type="button">Unlock Order</button>
<button class="btn btn-primary" ng-click="discardOrder('/content/boss/en/create-order/pre-order-options');" type="button">Discard Order</button>
<button class="btn btn-primary" ng-click="saveOrder(showSaveButton && ban_search.$valid);" ng-disabled="showSaveButton==false || ban_search.$invalid" type="button" disabled="disabled">Save Order</button>
</div>

【问题讨论】:

    标签: selenium xpath selenium-webdriver


    【解决方案1】:

    我会依赖按钮文本

    driver.findElement(By.xpath('//button[. = "Unlock Order"]'))
    

    . 指的是按钮的文本。

    【讨论】:

    • 我是新手,你能解释一下你上面的代码吗?
    • @Reema 引号内的表达式是一个 xpath 表达式,点指的是按钮的文本。希望这能让事情更清楚。如果它适合您,请不要忘记接受答案(左侧的复选框)。谢谢。
    • ,好的,我明白了,但是这里有一个问题,我发布的 html 只是一部分,幸运的是有不同文本的按钮。这段代码呢?
    • 不存在的组织
  • 我尝试使用 driver.findElement(By.xpath(property) (这里属性 = /heading[. = "NON-EXISTING Organization"],我从属性文件传递值)我在这里做错了什么?因为这行不通。:(
  • @Reema 带有a 标签,您可以更轻松地做到这一点:By.linkText('NON-EXISTING Organization')
  • 猜你喜欢
    相关资源
    最近更新 更多
    热门标签