Найти элемент на странице - PullRequest
2 голосов
/ 15 марта 2020

У меня есть эта страница ,

На странице есть общий доступ к элементам (слева внизу на сообщении):

<button class="btn btn_share" role="dropdown_trigger" data-toggle="dropdown" type="button" title=" Поделиться вопросом" aria-expanded="false">
  <svg class="icon_svg icon_sharing" viewBox="0 0 32 32">
    <use href="5e6a141a/images/sprite.svg#icon_sharing"></use>
  </svg>
</button>

Пробовал с помощью [tags: xpath] ,

List<WebElement> elements=driver.findElements(By.xpath("xpath=//div[@class='btn btn_share']/div/div[5]/div/button"));

if (elements == null) {
    System.out.println("sharing no found");
    System.exit(1);
} else {
    for (WebElement element : elements) {
        element.click();
    }
}

и использование выбора класса.

List<WebElement> elements=driver.findElementsByClassName("btn_share");

if (elements == null) {
    System.out.println("sharing no found");
    System.exit(1);
} else {
    for (WebElement element : elements) {
        element.click();
        TimeUnit.SECONDS.sleep(50);
    }
}

Но никакого результата.

Как выбрать один элемент и щелкнуть?

1 Ответ

0 голосов
/ 17 марта 2020

Используйте элементы поиска By.cssSelector с этим значением: [class*='btn_share'].

И для проверки вы можете использовать elements.size()==0 не elements == null.

List<WebElement> elements = driver.findElements(By.cssSelector("[class*='btn_share']"));

if(elements.size()==0) {
    System.out.println("sharing no found");
}else {
    for(WebElement element: elements) {
        element.click();
    }
}

CSS Справочник по выбору

...