我需要通过WebDriver验证页面中的文本。我喜欢将结果视为布尔值(true或false)。可以通过提供WebDriver代码来帮助解决这个问题吗?
答案 0 :(得分:6)
由于zmorris点driver.getPageSource().contains("input");
不是正确的解决方案,因为它搜索所有的html,而不仅仅是其上的文本。
我建议您查看此问题:how can I check if some text exist or not in the page?
以及Slanec解释的推荐方式:
String bodyText = driver.findElement(By.tagName("body")).getText();
Assert.assertTrue("Text not found!", bodyText.contains(text));
答案 1 :(得分:3)
是的,您可以执行返回布尔值的操作。 WebDriver与TestNG或JUnit中的以下Java代码可以执行:
protected boolean isTextPresent(String text){
try{
boolean b = driver.getPageSource().contains(text);
return b;
}
catch(Exception e){
return false;
}
}
现在调用上面的方法如下:
assertTrue(isTextPresent("Your text"));
或者,还有另一种方式。我认为,这是更好的方式:
private StringBuffer verificationErrors = new StringBuffer();
try {
assertTrue(driver.findElement(By.cssSelector("BODY")).getText().matches("^[\\s\\S]* Your text here\r\n\r\n[\\s\\S]*$"));
} catch (Error e) {
verificationErrors.append(e.toString());
}
答案 2 :(得分:1)
如果您不关心文本的位置,那么您可以使用Driver.PageSource属性,如下所示:
Driver.PageSource.Contains(“预期消息”);
答案 3 :(得分:1)
Driver.getPageSource()是验证文本存在的错误方法。假设您说,driver.getPageSource().contains("input");
屏幕上不显示“输入”,只有“输入”出现在html中,就像输入标记一样。
我通常使用xpath验证元素上的文本:
boolean textFound = false;
try {
driver.findElement(By.xpath("//*[contains(text(),'someText')]"));
textFound = true;
} catch (Exception e) {
textFound = false;
}
如果您想要精确的文本匹配,只需删除包含函数:
driver.findElement(By.xpath("//*[text()='someText']));
答案 4 :(得分:0)
对于Ruby程序员来说,这是你可以断言的方式。 必须包含Minitest以获取断言
assert(@driver.find_element(:tag_name => "body").text.include?("Name"))
答案 5 :(得分:0)
以下代码是验证页面文本的最佳方式。根据您的方便,您可以使用8个定位器中的任何一个。
String Verifytext = driver.findElement(By.tagName(“body”))。getText()。trim(); Assert.assertEquals(Verifytext,“在此处粘贴需要验证的文本”);
答案 6 :(得分:0)
如果您只想检查显示的对象( C#):
public bool TextPresent(string text, int expectedNumberOfOccurrences)
{
var elements = Driver.FindElements(By.XPath(".//*[text()[contains(.,'" + text + "')]]"));
var dispayedElements = 0;
foreach (var webElement in elements)
{
if (webElement.Displayed)
{
dispayedElements++;
}
}
var allExpectedElementsDisplayed = dispayedElements == expectedNumberOfOccurrences;
return allExpectedElementsDisplayed;
}
答案 7 :(得分:-1)
注意:不在布尔值
中WebDriver driver=new FirefoxDriver();
driver.get("http://www.gmail.com");
if(driver.getPageSource().contains("Ur message"))
{
System.out.println("Pass");
}
else
{
System.out.println("Fail");
}