2013-06-19 3 views
1

Я хочу, чтобы проверить текст моей строки (клиент) внутри тега, используя следующий код:WebDriver видимость элемента без локатора

boolean feedBack = driver.findElement(By.cssSelector("body")).getText().contains(client); 

Если она возвращает верно тогда, Есть ли способ, чтобы непосредственно проверить видимость этой строки (без локатора)?

ответ

1
  1. Найти элемент, содержащий необходимый текст в текстовом узле:

    WebElement element = driver.findElement(By.xpath("//*[text()='" + client + "']")); 
    

    При необходимости, используйте normalize-space() или вместо:

    WebElement element = driver.findElement(By.xpath("//*[contains(text(),'" + client + "')]")); 
    

    Найдет сокровенный элемент, содержащий текст, а не какой-либо случайный предок.

  2. Проверить, является ли он виден через

    element.isDisplayed() 
    

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

+1

Вышеупомянутая реализация работает и соответствует вашим требованиям, но, пожалуйста, ради любви к Богу не делайте этого! Если вы не знаете, где находится текст на вашей странице, и вы просто произвольно возьмете что-нибудь и скажете, что все хорошо, если это видно, ваш тест бесполезен в любом случае. – Ardesco

+0

Точно. Что он сказал. Цель переднего тестирования состоит в том, чтобы убедиться, что все появляется там, где оно должно и когда оно должно быть таким, каким оно должно быть. Вы проверяете, содержит ли страница какой-либо текст, который может отображаться на странице по другой причине, чем вы ожидаете. –

Смежные вопросы