我正在使用webdriverjs进行一些测试,到目前为止我很喜欢它。我刚遇到一个似乎无法进行更广泛测试的问题。我很好奇是否有任何方法可以查看某个页面是否具有特定内容,但是不必将其传递给特定的css选择器?
即。我有一个遍布整个地方的文本网页,我特别想要运行一个测试,看看我的页面是否有字符串“Hello World!”在页面的某个地方。字符串的位置无关紧要,就在那里。
如果webdriverjs无法做到这一点,还有其他方法可以运行这种测试吗?
答案 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
}
});
}