Я использую selenium webdriver, как я могу проверить, существует ли какой-либо текст на странице? Может быть, кто-то порекомендует мне полезные ресурсы, где я могу прочитать об этом. Благодаря
Как я могу проверить, существует ли какой-либо текст на странице?
Ответ 1
С XPath, это не так сложно. Просто выполните поиск всех элементов, содержащих данный текст:
List<WebElement> list = driver.findElements(By.xpath("//*[contains(text(),'" + text + "')]"));
Assert.assertTrue("Text not found!", list.size() > 0);
Официальная документация не очень поддерживает такие задачи, но тем не менее это основной инструмент.
JavaDocs больше, но требуется некоторое время, чтобы пройти через все полезные и неиспользуемые.
Чтобы узнать XPath, просто следовать за Интернетом. Спецификация также удивительно хорошо читается.
EDIT:
Или, если вы не хотите, чтобы ваш Implicit Wait, чтобы вышеприведенный код ожидал появления текста, вы можете сделать что-то в путь этого:
String bodyText = driver.findElement(By.tagName("body")).getText();
Assert.assertTrue("Text not found!", bodyText.contains(text));
Ответ 2
Это поможет вам проверить, есть ли требуемый текст на веб-странице или нет.
driver.getPageSource().contains("Text which you looking for");
Ответ 3
Вы можете получить основной текст всей страницы следующим образом:
bodyText = self.driver.find_element_by_tag_name('body').text
то используйте assert, чтобы проверить его следующим образом:
self.assertTrue("the text you want to check for" in bodyText)
Конечно, вы можете быть конкретным и получить конкретный текст элемента DOM, а затем проверить, что вместо получения всей страницы.
Ответ 4
В selenium 2 webdriver нет подтвержденияTextPresent, поэтому вы должны проверить текст в источнике страницы. Ниже приведены некоторые практические примеры.
Python
В драйвере Python вы можете написать следующую функцию:
def is_text_present(self, text):
return str(text) in self.driver.page_source
то используйте его как:
try: self.is_text_present("Some text.")
except AssertionError as e: self.verificationErrors.append(str(e))
Чтобы использовать регулярное выражение, попробуйте:
def is_regex_text_present(self, text = "(?i)Example|Lorem|ipsum"):
self.assertRegex(self.driver.page_source, text)
return True
Для полного примера см. FooTest.py
file.
Или проверьте несколько других альтернатив:
self.assertRegexpMatches(self.driver.find_element_by_xpath("html/body/div[1]/div[2]/div/div[1]/label").text, r"^[\s\S]*Weather[\s\S]*$")
assert "Weather" in self.driver.find_element_by_css_selector("div.classname1.classname2>div.clearfix>label").text
Источник: Еще один способ проверить (утверждать), если текст существует с использованием Selenium Python
Java
В Java используется следующая функция:
public void verifyTextPresent(String value)
{
driver.PageSource.Contains(value); ;
}
и использование будет:
try
{
Assert.IsTrue(verifyTextPresent("Selenium Wiki"));
Console.WriteLine("Selenium Wiki test is present on the home page");
}
catch (Exception)
{
Console.WriteLine("Selenium Wiki test is not present on the home page");
}
Источник: Использование verifyTextPresent в Selenium 2 Webdriver
Behat
Для Behat вы можете использовать Расширение норки. Он имеет следующие методы, определенные в MinkContext.php
:
/**
* Checks, that page doesn't contain text matching specified pattern
* Example: Then I should see text matching "Bruce Wayne, the vigilante"
* Example: And I should not see "Bruce Wayne, the vigilante"
*
* @Then /^(?:|I )should not see text matching (?P<pattern>"(?:[^"]|\\")*")$/
*/
public function assertPageNotMatchesText($pattern)
{
$this->assertSession()->pageTextNotMatches($this->fixStepArgument($pattern));
}
/**
* Checks, that HTML response contains specified string
* Example: Then the response should contain "Batman is the hero Gotham deserves."
* Example: And the response should contain "Batman is the hero Gotham deserves."
*
* @Then /^the response should contain "(?P<text>(?:[^"]|\\")*)"$/
*/
public function assertResponseContains($text)
{
$this->assertSession()->responseContains($this->fixStepArgument($text));
}
Ответ 5
В python вы можете просто проверить, как следует:
# on your `setUp` definition.
from selenium import webdriver
self.selenium = webdriver.Firefox()
self.assertTrue('your text' in self.selenium.page_source)
Ответ 6
Вы можете проверить текст в источнике страницы следующим образом:
Assert.IsTrue(driver.PageSource.Contains("Your Text Here"))
Ответ 7
В С# этот код поможет вам проверить, есть ли требуемый текст на веб-странице или нет.
Assert.IsTrue(driver.PageSource.Contains("Type your text here"));
Ответ 8
boolean Error = driver.getPageSource().contains("Your username or password was incorrect.");
if (Error == true)
{
System.out.print("Login unsuccessful");
}
else
{
System.out.print("Login successful");
}