【问题标题】:How to get element in element from the list of elements in Java and Selenium如何从 Java 和 Selenium 中的元素列表中获取元素中的元素
【发布时间】:2018-10-25 12:58:17
【问题描述】:

在我的页面上,例如,汽车列表,它们都有相同的按钮,例如“选择”(所有选择按钮的定位器都相同):

在我的代码中,我使用它来获取汽车的 WebElement 列表:

List<WebElement> allCars = driver.findElements(By.Xpath(ListOfAvailableCars));

然后,我正在为第 5 辆车获取 WebElement,并且正在为这辆车找到选择按钮:

allCars.get(4).findElement(By.Xpath(SelectButtonLocator)).click();

但是为列表中的第一辆车按下了“选择”按钮。

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

【问题讨论】:

  • 用相关的HTML更新问题
  • 根据您的 XPath,您可以使用例如//div[@class='my-class'][5] 获取第五个元素(XPath 元素索引从 1 开始)。
  • "SelectButtonLocator" xpath 字符串应该以 '.' 开头限制在所需元素内的搜索。
  • @Grasshopper 谢谢,这就是我要找的东西!

标签: java selenium


【解决方案1】:

谢谢大家!

通过添加“.”解决了这个问题到 Xpath。 @Grasshopper 解决方案有效。

【讨论】:

    【解决方案2】:

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

    使用 List&lt;WebeElement&gt; 找到所有按钮并按索引单击它们。 list.get(1).click();

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

    第一辆车

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

    【讨论】:

      【解决方案3】:

      找到您的 webElement

      List<WebElement> allCars = driver.findElements(By.Xpath(ListOfAvailableCars)/following-sibling::SelectButtonLocator);
      

      然后

      allCars.get(4).click()
      

      希望它会有所帮助。 如果可以的话,请分享截图

      【讨论】:

        猜你喜欢
        • 2015-12-05
        • 1970-01-01
        • 1970-01-01
        • 2013-08-24
        • 2016-03-19
        • 2016-01-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多