为了账号安全,请及时绑定邮箱和手机立即绑定

带有加号的按钮的唯一名称 - 要单击此按钮

带有加号的按钮的唯一名称 - 要单击此按钮

holdtom 2021-11-11 13:39:56
代码是:<button class="btn btn-default btn-xs" style="padding:0 5px" id="addPiidRelatedNumberBtn_332741000" ng-click="AddPiidRelatedNumber($event)" ng-show="EnableEditable &amp;&amp; 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();



查看完整回答
反对 回复 2021-11-11
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

你可以尝试这样的事情:

driver.findElement(By.xpath("//button[starts-with(@id,'addPiidRelatedNumberBtn_')]")).click();



查看完整回答
反对 回复 2021-11-11
?
12345678_0001

TA贡献1802条经验 获得超5个赞

您可以使用角度属性,

driver.findElement(By.xpath("//button[@ng-click='AddPiidRelatedNumber($event)']"));


查看完整回答
反对 回复 2021-11-11
  • 3 回答
  • 0 关注
  • 248 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信