Как щелкнуть элемент относительно смежного элемента в DOM HTML, используя Selenium и Java - PullRequest
0 голосов
/ 24 января 2020

Мне нужно нажать на миниатюру, которая появляется прямо перед заголовком Automation-Browser (Meta).

Я думаю, мне нужно использовать комбинацию ниже:

  • Брат
  • Предок
  • Предшествующий &
  • Потомок

Пробный код:

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.

Я просто хочу нажать на эскиз, который появляется прямо перед «заголовком Automation-Browser (Meta)» ** на скриншоте ниже.

enter image description here

Ответы [ 2 ]

1 голос
/ 25 января 2020

К click() на миниатюре рядом с элементом с текстом Automation-Browser (Meta) Title вам нужно вызвать WebDriverWait для elementToBeClickable(), и вы можете используйте любой из следующих стратегий локатора :

  • Использование атрибутов xpath и title :

    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 и innerText :

    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();
    
1 голос
/ 25 января 2020

Построить xpath из изображения немного сложно. Вы можете получить лучшие ответы, если предоставите образец кода исходного кода страницы, но это может заставить вас указать правильное направление.

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

Адаптировано из этого аналогичного поста: Как использовать предшествующую XPath -брат правильно

...