Как найти элемент с помощью selenium-webdriver и Java

#java #selenium-webdriver #xpath #css-selectors #webdriverwait

#java #selenium-webdriver #xpath #css-селекторы #webdriverwait

Вопрос:

Как я могу вызвать xpath для class ?

<button class="inline" data-ember-action="" data-ember-action-11310="11310">Load</button>

Я попытался вызвать его с помощью :

 By.xpath("//span/button[text()='Load'][1]");
  

но он не может найти элемент.

Комментарии:

1. вы также можете добавить ошибку или исключение, которые вы получаете, для получения лучших ответов.

2. //button[@class='inline' and text()='Load']

Ответ №1:

Используйте этот xpath:

 //button[@class='inline' and text()='Load']
  

Ответ №2:

Элемент, похоже, является Ember.js включен элемент, поэтому для click() элемента вам нужно вызвать WebDriverWait для elementToBeClickable, и вы можете использовать любое из следующих решений:

  • cssSelector :

     new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.cssSelector("button.inline[data-ember-action]"))).click();
      
  • xpath :

     new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//button[@class='inline' and text()='Load'][@data-ember-action]"))).click();