Ответ 1
Код выглядит так:
def elem = driver.findElement(By.xpath("//*[contains(.,'search_text')]"));
if (elem == null) println("The text is not found on the page!");
Как проверить, присутствует ли данная текстовая строка на текущей странице с помощью Selenium?
Код выглядит так:
def elem = driver.findElement(By.xpath("//*[contains(.,'search_text')]"));
if (elem == null) println("The text is not found on the page!");
Если ваш поиск всей страницы для некоторого текста, то предоставление xpath
или selector
до найти элемент не требуется. Следующий код может помочь.
Assert.assertEquals(driver.getPageSource().contains("text_to_search"), true);
По некоторым причинам некоторые элементы не реагируют на "общий" поиск, указанный в другом ответе. По крайней мере, не в Selenium2library под Robot Framework, где мне понадобилось это заклинание, чтобы найти конкретный элемент:
xpath=//script[contains(@src, 'super-sekret-url.example.com')]
Более простая (но, вероятно, менее эффективная) альтернатива XPaths - это просто получить весь видимый текст в теле страницы так:
def pageText = browser.findElement(By.tagName("body")).getText();
Затем, если вы используете JUnit или что-то еще, вы можете использовать утверждение, чтобы проверить, что строка, которую вы ищете, содержится в нем.
assertThat("Text not found on page", pageText, containsString(searchText));
Использование XPath, возможно, более эффективно, но этот способ проще понять для незнакомых с ним. Кроме того, AssertionError
, сгенерированный assertThat
, будет содержать текст, который существует на странице, что может быть желательно для отладки, поскольку любой, кто смотрит в журналы, может четко видеть, какой текст находится на странице, если то, что мы ищем, isn "т.