Javascript 获取元素的可见文本
这是一个非常简单的问题,但我似乎找不到答案,因为SeleniumWebDriver的javascript绑定文档非常稀少。(有很多关于java绑定的文档,但javascript是另一回事) 假设Javascript 获取元素的可见文本,javascript,node.js,selenium-webdriver,Javascript,Node.js,Selenium Webdriver,这是一个非常简单的问题,但我似乎找不到答案,因为SeleniumWebDriver的javascript绑定文档非常稀少。(有很多关于java绑定的文档,但javascript是另一回事) 假设driver和webdriver通常是实例化的,如何获取任意元素的文本 我尝试了大量的getText()、then()等组合,但我所做的一切似乎都不起作用。我一定是做错了什么事。值得一提的是,我在测试套件的另一个测试中发现了以下类似的(工作)代码。奇怪的是,我能让另一个测试(如下)正常工作,但不是我一直关
driver
和webdriver
通常是实例化的,如何获取任意元素的文本
我尝试了大量的getText()、then()等组合,但我所做的一切似乎都不起作用。我一定是做错了什么事。值得一提的是,我在测试套件的另一个测试中发现了以下类似的(工作)代码。奇怪的是,我能让另一个测试(如下)正常工作,但不是我一直关注的那个
driver.findElement(webdriver.By.css('.failures em')).getText().then(function(v) {
expect(v).to.equal('0');
done();
});
也许我忽略了别的东西
无论如何,我对SeleniumWebDriver混淆了同步/异步代码与承诺之类的东西感到非常失望。我决定改用WebdriverJS(),到目前为止,我发现迁移非常直观和令人满意。测试又变得有趣了!:)
祝你好运 您是用javascript编写测试,还是只是想在测试中执行一些javascript(用Java/C#/其他语言编写)?我的测试是用javascript编写的。我使用的是Mocha、Chai和selenium webdriver(在Node.js上)。是否
element.getAttribute(“innerText”)
为您提供元素文本?无法使其工作。我尝试了这些变体:console.log(driver.findElement(webdriver.By.css('html')).getAttribute(“innerText”)代码>driver.findElement(webdriver.By.css('html'))。然后(函数(v){console.log(v.getAttribute(“innerText”);})代码>不确定JS绑定…但是您可以检查元素是否使用“isDisplayed”方法显示。2017更新:您可能还希望根据需要检查PhantomJS和噩梦EJ