我正在尝试验证页面上的一些内容,并使用带有标题列的网格。我想从中获取文本,这是验证的一部分。由于某种原因,它返回空值,并且我不明白为什么考虑使用包含文本来查找元素。
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>
答案 0 :(得分:-1)
您似乎很亲近。理想情况下,要提取<div>
元素的 textContent ,您需要为visibilityOfElementLocated()
引入 WebDriverWait ,并且可以使用以下{{3 }}:
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);