проблема селена при попытке извлечь текст из div с помощью driver.findElement (By.xpath () - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь проверить несколько вещей на странице и создать сетку со столбцами заголовков. Я хочу взять текст из тех, которые являются частью проверки. По какой-то причине он возвращается пустым, и я не понимаю, почему, учитывая, что я использую, содержит текст, чтобы найти элемент.

     String expectedName = "Employee Name";
     String actualName = driver.findElement(By.xpath("//div[contains(text(), 'Employee Name')]")).getText();
     Assert.assertEquals(expectedName, actualName);

Я получаю следующую ошибку: java.lang.AssertionError: expected [Employee Name] but found []

HTML:

<div class="dx-datagrid-text-content dx-text-content-alignment-left dx-header-filter-indicator" role="presentation">Employee Name</div>

1 Ответ

0 голосов
/ 28 февраля 2020

Кажется, ты рядом. Чтобы извлечь textContent элемента <div>, в идеале вам нужно вызвать WebDriverWait для visibilityOfElementLocated(), и вы можете использовать любую из следующих стратегий локатора :

  • cssSelector:

    String expectedName = "Employee Name";
    String actualName = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector("div.dx-datagrid-text-content.dx-text-content-alignment-left.dx-header-filter-indicator"))).getText();
    Assert.assertEquals(expectedName, actualName);
    
  • xpath:

    String expectedName = "Employee Name";
    String actualName = new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//div[@class='dx-datagrid-text-content dx-text-content-alignment-left dx-header-filter-indicator']"))).getText();
    Assert.assertEquals(expectedName, actualName);
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...