【问题标题】:How to click an element with respect to the adjacent element within the HTML DOM using Selenium and Java如何使用 Selenium 和 Java 在 HTML DOM 中单击相对于相邻元素的元素
【发布时间】:2020-01-24 20:08:58
【问题描述】:

我需要点击出现在“Automation-Browser (Meta) Title”之前的缩略图。

我认为我需要使用以下组合:

  • 兄弟姐妹
  • 祖先
  • 前置&
  • 后裔

代码试用:

driver.findElements(By.xpath("//div[@class='*foundation-collection-item-title*'][@title='Automation-Browser (Meta) Title']//ancestor::div//coral-columnview-item-thumbnail")).size()`     = Found 52 elements with same property & I do not want to use index.

我只想点击下面屏幕截图中“自动化浏览器(元)标题”**之前出现的缩略图。

【问题讨论】:

    标签: java selenium-webdriver xpath webdriverwait xpath-1.0


    【解决方案1】:

    从图像构建 xpath 有点困难。如果您提供页面源代码示例,您可能会得到更好的答案,但这可能会为您指明正确的方向。

    //*[contains(text(),"Automation-Browser")]/../preceding-sibling::coral-columnview-item-thumbnail[@class='foundation-colection-item-thumbnail']
    

    改编自类似的帖子:How to use XPath preceding-sibling correctly

    【讨论】:

      【解决方案2】:

      在与文本为 Automation-Browser (Meta) Title 的元素相邻的缩略图上的 click() 上,您需要为 elementToBeClickable() 诱导 WebDriverWait 和您可以使用以下任一Locator Strategies

      • 使用xpathtitle属性:

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='foundation-colection-item-title' and @title=\"Automation-Browser (Meta) Title\"]//preceding::coral-columnview-item-thumbnail[1]/img[@class='foundation-colection-item-thumbnail']"))).click();
        
      • xpathinnerText:

        new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//div[@class='foundation-colection-item-title' and contains(., 'Automation-Browser')]//preceding::coral-columnview-item-thumbnail[1]/img[@class='foundation-colection-item-thumbnail']"))).click();
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-26
        • 1970-01-01
        • 2020-01-24
        • 1970-01-01
        • 2016-11-11
        相关资源
        最近更新 更多