使用 Selenium2,如何检查页面上是否存在某些文本?

发布于 2024-11-28 20:13:47 字数 518 浏览 1 评论 0原文

我正在使用 C# Selenium WebDriver,我想确认页面上是否存在某些文本。

我该怎么做?所有选择器似乎都使用 ID、类等。我不关心文本在页面上的位置,我只想确保它存在于页面上的某个地方

有什么想法吗?

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;
}

I am using the C# Selenium WebDriver and I would like to confirm that certain text exists on the page.

How do I do this? All the selectors seem to use IDs, Classes etc. I don't care where the text is on the page, I just want to make sure it exists somewhere on the page.

Any thoughts?

PS: I can do this using JQuery and Javascript, but apparently that's not supported in all browser drivers:

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;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

清眉祭 2024-12-05 20:13:48
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")
WebElement bodyTag = driver.findElement(By.tagName("body")); 
if (bodyTag.getText().contains("Text I am looking for") { 
  // do something 
} 

or find a speific div

or you can use the Selenium class WebDriverBasedSelenium and do something like

var selenium=new WebDriverBasedSelenium(driver,url);

selenium.IsTextPresent("text")
心头的小情儿 2024-12-05 20:13:48

这是使用 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"));

注意:断言是 Nunit 断言,显然,您可以使用您喜欢的任何断言方法。在本示例中,我还使用了 RemoteWebDriver 和 Firefox。

Here's an updated version using 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"));

Note: The Assert is an Nunit assert, you can obviously use whichever assertion method you prefer. I'm also using the RemoteWebDriver and Firefox for this example.

趁微风不噪 2024-12-05 20:13:48

您应该能够通过检查 的内部文本来实现此目的。

You should be able to achieve this by checking the inner text of <body />.

望她远 2024-12-05 20:13:48

在java中你可以这样做:

booleanwhat = driver.getPageSource().contains("Whatever you try to find");

In java you do it like so:

boolean whatever = driver.getPageSource().contains("Whatever your trying to find");

各空 2024-12-05 20:13:48

我发现最简单的事情就是搜索课程

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

Assert.IsTrue(thing.Text.Contains("YourText"));

Easiest thing I found was to search for a class

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

Assert.IsTrue(thing.Text.Contains("YourText"));
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文