Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium webElement属性更改_Selenium_Xpath_Selenium Webdriver - Fatal编程技术网

Selenium webElement属性更改

Selenium webElement属性更改,selenium,xpath,selenium-webdriver,Selenium,Xpath,Selenium Webdriver,我正在用selenium自动化一个应用程序。没有像id、tag这样的普通标签,我可以通过它找到元素。所以我使用的是xpath[driver.findElementBy.xpath]。但是现在我发现WebElement的一些xpath在运行时动态变化,因此我的测试用例失败了。甚至相对xpath选项也不适用于HTML。我正在粘贴AUT的HTML的一部分。请让我知道如何处理这种情况 <div> <button class="btn btn-primary ng-hide" ng-cl

我正在用selenium自动化一个应用程序。没有像id、tag这样的普通标签,我可以通过它找到元素。所以我使用的是xpath[driver.findElementBy.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>
我将依赖按钮文本:


在哪里。引用按钮的文本。

我是新手,请您解释一下上面的代码好吗?@Reema引号内的表达式是xpath表达式,点引用按钮的文本。希望这能让事情更清楚。如果它适合你,不要忘记接受左边的答案复选框。谢谢。好的,我知道了,但是这里有一个问题,我发布的html只是一个部分,幸运的是,有一个按钮有不同的文本。这段代码呢?不存在的组织我试图在此处使用driver.findElementBy.xpathproperty property=/heading[.=不存在的组织],并且我正在从属性文件传递值。我在此处做了什么错误吗?因为这是行不通的@Reema带有一个标签,你们可以更容易地完成:By.linkText“不存在的组织”。
driver.findElement(By.xpath('//button[. = "Unlock Order"]'))