Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.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
如何从Java和Selenium中的元素列表中获取元素中的元素_Java_Selenium - Fatal编程技术网

如何从Java和Selenium中的元素列表中获取元素中的元素

如何从Java和Selenium中的元素列表中获取元素中的元素,java,selenium,Java,Selenium,例如,在我的页面上有一个汽车列表,所有的汽车都有相同的按钮,比如“选择”(定位器对于所有选择按钮都是相同的): 在我的代码中,我用这个来获取汽车的WebElements列表: List<WebElement> allCars = driver.findElements(By.Xpath(ListOfAvailableCars)); 但按下列表中第一辆车的“选择”按钮 是否可以在该特定元素中定位按钮和其他元素(将Webdriver限制为仅此元素)?只需为每辆车的按钮创建一个定位器 使

例如,在我的页面上有一个汽车列表,所有的汽车都有相同的按钮,比如“选择”(定位器对于所有选择按钮都是相同的):

在我的代码中,我用这个来获取汽车的WebElements列表:

List<WebElement> allCars = driver.findElements(By.Xpath(ListOfAvailableCars));
但按下列表中第一辆车的“选择”按钮


是否可以在该特定元素中定位按钮和其他元素(将Webdriver限制为仅此元素)?

只需为每辆车的按钮创建一个定位器

使用
列表
查找所有按钮并按索引单击它们。
list.get(1).单击()

第二种解决方案是为每个按钮创建xpath定位器

第一辆车

driver.findElement(By.xpath("(//button[@id='something'])[1]")).click();

找到您的webElement

List<WebElement> allCars = driver.findElements(By.Xpath(ListOfAvailableCars)/following-sibling::SelectButtonLocator);
希望这会有帮助。 如果可能,请分享截图

谢谢大家


通过在Xpath中添加“.”解决了此问题@Grasshopper解决方案成功。

使用相关的HTMLDepending更新问题。根据您的XPath,您可以使用例如//div[@class='my-class'][5]来获取第五个元素(XPath元素索引是基于1的)。“SelectButtonLocator”XPath字符串应以“.”开头,以限制在所需元素内搜索。@Grasshopper谢谢,这就是我要找的!
List<WebElement> allCars = driver.findElements(By.Xpath(ListOfAvailableCars)/following-sibling::SelectButtonLocator);
allCars.get(4).click()