如何使用 Selenium 和 Java 定位具有相同 class 的元素
How to locate the element that has the same class using Selenium and Java
我无法找到具有相同 class
的 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
你可以试试这个:
WebElement elmt = driver.findElement(By.xpath("(//*[@class='mi-title'])[1]"));
将[1]
更改为[2]
等,如果有多个,这是元素的编号。
您也可以使用此 xpath 来识别元素
driver.findelement(By.xpath("//*[@data-ng-bind='navverTreeItemScope.listItem.title']"))
正如您提到的唯一改变的是仪表板名称即Staging - ALCDE所以您必须引入WebDriverWait 用于 elementToBeClickable()
并且您可以使用以下任一项 :
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();
我无法找到具有相同 class
的 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
你可以试试这个:
WebElement elmt = driver.findElement(By.xpath("(//*[@class='mi-title'])[1]"));
将[1]
更改为[2]
等,如果有多个,这是元素的编号。
您也可以使用此 xpath 来识别元素
driver.findelement(By.xpath("//*[@data-ng-bind='navverTreeItemScope.listItem.title']"))
正如您提到的唯一改变的是仪表板名称即Staging - ALCDE所以您必须引入WebDriverWait 用于 elementToBeClickable()
并且您可以使用以下任一项
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();