webdriverjs' hasContent'方法?

时间:2014-06-23 16:55:44

标签: javascript selenium-webdriver

我正在使用webdriverjs进行一些测试,到目前为止我很喜欢它。我刚遇到一个似乎无法进行更广泛测试的问题。我很好奇是否有任何方法可以查看某个页面是否具有特定内容,但是不必将其传递给特定的css选择器?

即。我有一个遍布整个地方的文本网页,我特别想要运行一个测试,看看我的页面是否有字符串“Hello World!”在页面的某个地方。字符串的位置无关紧要,就在那里。

如果webdriverjs无法做到这一点,还有其他方法可以运行这种测试吗?

1 个答案:

答案 0 :(得分:0)

可以使用webdriverjs。默认情况下没有hasContent方法,但使用getText()方法自行创建一个方法很容易。 getText()获取给定元素及其子元素的可见文本。因此,要获取网页的全文,您只需在<html>元素上调用即可。像这样:

var selenium = require('selenium-webdriver');
var By = selenium.By;  
var driver = new selenium.Builder().withCapabilities(selenium.Capabilities.chrome()).build();

function hasContent(content) {
    driver.findElement(By.tagName('html')).getText().then(function(entireVisibleText) {
        if (entireVisibleText.indexOf(content) > - 1) {
            // text found
        }
        else {
            // text not found
        }
    });
}