繁体   English   中英

如何使用 Selenium 和 Java 单击与 HTML DOM 中的相邻元素相关的元素

[英]How to click an element with respect to the adjacent element within the HTML DOM using Selenium and Java

我需要单击出现在“自动化浏览器(元)标题”之前的缩略图。

我想我需要使用以下组合:

  • 兄弟
  • 祖先
  • 前面 &
  • 后裔

代码试用:

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.

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

在此处输入图片说明

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

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

改编自这篇类似的文章: 如何正确使用 XPath 前置兄弟

要在与文本相邻的缩略图上click()作为自动化浏览器(元)标题,您需要为elementToBeClickable()引入WebDriverWait ,您可以使用以下任一定位器策略

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM