代码是:<button class="btn btn-default btn-xs" style="padding:0 5px" id="addPiidRelatedNumberBtn_332741000" ng-click="AddPiidRelatedNumber($event)" ng-show="EnableEditable && CanEdit"><span class="glyphicon glyphicon-plus" title="Add New Related Number"></span>我在 STS 包中编写了这个 selenium 代码:WaitUtility.ThreadSleep(1000);driver.findElement(By.xpath("//button[@id='addPiidRelatedNumberBtn_332741000']")).click();但我知道 id 可以随时更改,因为它有一些数字。有没有更好的方法来编码它以单击此按钮?
3 回答
湖上湖
TA贡献2003条经验 获得超2个赞
所需的元素是一个Angular元素,因此您需要引入WebDriverWait以使该元素可点击,您可以使用以下任一解决方案:
cssSelector
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.btn.btn-default.btn-xs>span.glyphicon.glyphicon-plus[title='Add New Related Number']"))).click();
xpath
:new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='btn btn-default btn-xs']/span[@class='glyphicon glyphicon-plus' and @title='Add New Related Number']"))).click();
慕尼黑5688855
TA贡献1848条经验 获得超2个赞
你可以尝试这样的事情:
driver.findElement(By.xpath("//button[starts-with(@id,'addPiidRelatedNumberBtn_')]")).click();
12345678_0001
TA贡献1802条经验 获得超5个赞
您可以使用角度属性,
driver.findElement(By.xpath("//button[@ng-click='AddPiidRelatedNumber($event)']"));
添加回答
举报
0/150
提交
取消