2011-08-11 25 views
9

Tôi đang sử dụng C# Selenium WebDriver và tôi muốn xác nhận rằng văn bản nhất định tồn tại trên trang.Sử dụng Selenium2, làm cách nào để kiểm tra xem văn bản nhất định có tồn tại trên trang không?

Làm cách nào để thực hiện việc này? Tất cả các bộ chọn dường như sử dụng ID, Lớp, v.v. Tôi không quan tâm vị trí của văn bản trên trang, tôi chỉ muốn đảm bảo rằng văn bản đó tồn tại ở đâu đó trên trang.

Mọi suy nghĩ?

PS: Tôi có thể làm điều này bằng JQuery và Javascript, nhưng dường như đó là không được hỗ trợ trong tất cả các trình điều khiển trình duyệt:

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

Trả lời

11
WebElement bodyTag = driver.findElement(By.tagName("body")); 
if (bodyTag.getText().contains("Text I am looking for") { 
    // do something 
} 

hoặc tìm một div speific

hoặc bạn có thể sử dụng WebDriverBasedSelenium lớp Selenium và làm điều gì đó như

var selenium=new WebDriverBasedSelenium(driver,url); 

selenium.IsTextPresent("text") 
+0

Đẹp đơn giản. Cảm ơn! – willem

+0

câu trả lời tốt, cách khác bạn có thể sử dụng html thay vì cơ thể, tôi đã có một vài trường hợp được html làm việc tốt hơn – prestomanifesto

1

Bạn sẽ có thể đạt được điều này bằng cách kiểm tra các văn bản bên trong của <body />.

0

Trong java bạn làm điều đó như sau:

boolean bất cứ điều gì = driver.getPageSource(). chứa ("Bất cứ điều gì bạn cố gắng tìm");

4

Dưới đây là một phiên bản cập nhật sử dụng 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")); 

Lưu ý: Khẳng định là một Nunit khẳng định, bạn rõ ràng là có thể sử dụng bất cứ phương pháp khẳng định bạn thích. Tôi cũng đang sử dụng RemoteWebDriver và Firefox cho ví dụ này.

Các vấn đề liên quan