Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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

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和Java定位具有相同类的元素_Java_Selenium_Xpath_Webdriverwait_Xpath 1.0 - Fatal编程技术网

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

如何使用Selenium和Java定位具有相同类的元素,java,selenium,xpath,webdriverwait,xpath-1.0,Java,Selenium,Xpath,Webdriverwait,Xpath 1.0,我找不到具有相同类的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您可以尝试以下

我找不到具有相同类的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]
等,如果有多个元素,则这是元素的编号。

您可以尝试以下操作:

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

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

您也可以使用此xpath来标识元素

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

还可以使用此xpath来标识元素

driver.findelement(By.xpath("//*[@data-ng-bind='navverTreeItemScope.listItem.title']"))
正如您所提到的,唯一需要更改的是仪表板名称,即Staging-ALCDE,因此您必须为
元素引入WebDriverWait以使其可伸缩()
,并且您可以使用以下任一项:

  • 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();
    
正如您所提到的,唯一需要更改的是仪表板名称,即登台-ALCDE,因此您必须为
元素引入WebDriverWait以使其可伸缩()
,并且您可以使用以下任一选项:

  • 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();
    

请重新编写您的问题并给出适当的源代码示例请提供您的代码。下面是关于最少示例的规则:请重新编写您的问题并给出适当的源代码示例请提供您的代码。关于最小示例的规则是:感谢您的快速帮助,两个代码都不起作用。这次我没有收到任何错误消息,也没有点击仪表板。拜托,有什么原因吗?感谢you@PeaceT你说没有点击是什么意思?你的问题和答案都是为了定位元素。是否要单击()?很抱歉不清楚,是的,我也想单击它。但是当我添加click()时;对于代码,我得到了一个语法错误“类型不匹配:无法从void转换为”WebElemen@PeaceT检查答案更新并让我知道状态。@DebanjabB Woohoo它的工作。非常感谢你,你是最棒的。我在做一个专业项目。求你了,我会再联系你的。再次感谢您的迅速帮助,两个代码都不起作用。这次我没有收到任何错误消息,也没有点击仪表板。拜托,有什么原因吗?感谢you@PeaceT你说没有点击是什么意思?你的问题和答案都是为了定位元素。是否要单击()?很抱歉不清楚,是的,我也想单击它。但是当我添加click()时;对于代码,我得到了一个语法错误“类型不匹配:无法从void转换为”WebElemen@PeaceT检查答案更新并让我知道状态。@DebanjabB Woohoo它的工作。非常感谢你,你是最棒的。我在做一个专业项目。求你了,我会再联系你的。再次感谢您此代码不起作用它在线程“main”org.openqa.selenium.NoSuchElementException中返回了一条错误消息异常:没有这样的元素:无法定位元素:{“method”:“xpath”,“selector”:“(//*[@class='mi-title'])[1]”嗨此代码不起作用它在线程“main”中返回了一条错误消息异常org.openqa.selenium.NoSuchElementException:没有这样的元素:无法定位元素:{“方法”:“xpath”,“选择器”:“(//*[@class='mi-title'])[1]”