Используя Selenium2, как я могу проверить, существует ли определенный текст на странице? - PullRequest
10 голосов
/ 11 августа 2011

Я использую C # Selenium WebDriver и хочу подтвердить, что на странице существует определенный текст.

Как мне это сделать?Все селекторы, похоже, используют идентификаторы, классы и т. Д. Мне все равно, где текст на странице, я просто хочу убедиться, что он существует где-то на странице.

Любоймысли?

PS: я могу сделать это, используя JQuery и Javascript, но, очевидно, это поддерживается не всеми драйверами браузера:

protected bool TextIsOnThePage(string textToFind)
{
    var javascriptExecutor = ((IJavaScriptExecutor)_driver);
    bool textFound = Convert.ToBoolean(javascriptExecutor.ExecuteScript(string.Format("return $('*:contains(\"{0}\")').length > 0", textToFind)));

    return textFound;
}

Ответы [ 5 ]

13 голосов
/ 11 августа 2011
WebElement bodyTag = driver.findElement(By.tagName("body")); 
if (bodyTag.getText().contains("Text I am looking for") { 
  // do something 
} 

или найдите конкретный div

или вы можете использовать класс Selenium WebDriverBasedSelenium и сделать что-то вроде

var selenium=new WebDriverBasedSelenium(driver,url);

selenium.IsTextPresent("text")
5 голосов
/ 04 ноября 2015

Вот обновленная версия, использующая Selenium WebDriver 2.48.0

IWebDriver driver = new RemoteWebDriver(DesiredCapabilities.Firefox());
driver.Navigate().GoToUrl("http://stackoverflow.com/");
IWebElement body = driver.FindElement(By.TagName("body"));

Assert.IsTrue(body.Text.Contains("Top Questions"));

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

1 голос
/ 11 августа 2011

Этого можно добиться, проверив внутренний текст <body />.

0 голосов
/ 03 мая 2018

Самым простым, что я нашел, был поиск класса

IWebElement thing = driver.FindElement(By.ClassName("thingClass"));

Assert.IsTrue(thing.Text.Contains("YourText"));
0 голосов
/ 12 августа 2011

В Java вы делаете это так:

boolean what = driver.getPageSource (). Contains ("Что бы вы ни пытались найти");

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...