如何使用selenium和java在htmldom中相对于相邻元素单击元素

vs3odd8k  于 2021-06-30  发布在  Java
关注(0)|答案(2)|浏览(424)

我需要点击缩略图,这是出现在“自动化浏览器(元)标题”的权利。
我想我需要使用以下组合:
兄弟姐妹
祖先
前&
后代
代码试用:

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.

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

djmepvbi

djmepvbi1#

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

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

改编自这篇类似的文章:如何正确使用xpath前面的同级

bqujaahr

bqujaahr2#

click() 在以文本作为自动浏览器(meta)标题的元素旁边的缩略图上,您需要为 elementToBeClickable() 您可以使用以下任一定位器策略:
使用 xpath 和标题属性:

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();
``` `xpath` 和内部文本:

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

相关问题