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

如何使用 Selenium 和 Java 定位具有相同类的元素

如何使用 Selenium 和 Java 定位具有相同类的元素

侃侃无极 2023-06-08 17:05:03
我无法为具有相同类的 BI 仪表板窗格找到合适的元素<a class="mi-title" deatta-no-in="inTitleShowed('folder')" daetta-ni-href="" data-ng-bind="navverTreeItemScope.listItem.title" style="" xpath="1">Staging - ALCDE</a>`它们看起来都像上面的元素,唯一改变的是仪表板名称Staging - ALCDE
查看完整描述

3 回答

?
湖上湖

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

正如您提到的,唯一改变的是仪表板名称,即Staging - ALCDE,因此您必须为此引入WebDriverWaitelementToBeClickable(),并且您可以使用以下任一定位器策略:

  • linkText:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.linkText("Staging - ALCDE"))).click();
  • xpath:

    new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//a[@class='mi-title' and text()='Staging - ALCDE'][starts-with(@data-ng-bind, 'navverTreeItemScope')]"))).click();



查看完整回答
反对 回复 2023-06-08
?
慕姐4208626

TA贡献1852条经验 获得超7个赞

你可以试试这个:

WebElement elmt = driver.findElement(By.xpath("(//*[@class='mi-title'])[1]"));

改为[1][2],如果有多个,这是元素的编号。


查看完整回答
反对 回复 2023-06-08
?
翻翻过去那场雪

TA贡献2065条经验 获得超13个赞

您还可以使用此 xpath 来识别元素

driver.findelement(By.xpath("//*[@data-ng-bind='navverTreeItemScope.listItem.title']"))


查看完整回答
反对 回复 2023-06-08
  • 3 回答
  • 0 关注
  • 128 浏览

添加回答

举报

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