我第一次运行Node.js + Mocha + Selenium Webdriverjs的组合。我根据他们在https://code.google.com/p/selenium/wiki/WebDriverJs的文档设置了所有内容,但我发现很难找到通过Web驱动程序提供的所有命令的列表。是否有使用Selenium webdriverjs编写测试时可以使用的命令列表?
例如,如何使用Javascript
实现以下java代码new Wait("Couldn't find close button!") {
boolean until() {
return selenium.isElementPresent("button_Close");
}
};
我知道我可以使用driver.wait
,但它无法识别until
命令或isElementPresent
答案 0 :(得分:8)
我直接在这里查看docs的源文件。它实际上非常好:
https://code.google.com/p/selenium/source/browse/javascript/webdriver/webdriver.js
在回答你的问题时,你真的不想在WebDriverJS中等待,你想要习惯延迟的对象并承诺api。我刚刚写了一篇关于它的博客文章,应该可以帮到你:
http://xolv.io/blog/2013/04/end-to-end-testing-for-web-apps-meteor
答案 1 :(得分:0)
我也在查看源代码。他们有一个API文档的编译版本,这里更容易扫描:
http://selenium.googlecode.com/git/docs/api/javascript/module_selenium-webdriver.html
不幸的是,只有方法名称没有摘要。你仍然需要滚动页面。
就如何等待而言:
webdriver = require 'selenium-webdriver'
driver = ... // init your driver
driver.wait(webdriver.until...)
答案 2 :(得分:0)
@op,你最好使用链式语句。我使用until和isElementPresent命令,它们适用于生产就绪(CI / CD)列车流程。 因此调整代码应该可以正常工作
var isDisplayed = function(){
driver.isElementPresent(by.id('button id')).then(function(isDisplayed){
expect(isDisplayed).to.be.true
});
};