10

我第一次运行 Node.js + Mocha + Selenium Webdriverjs 的组合。我根据这里的文档设置了所有内容https://code.google.com/p/selenium/wiki/WebDriverJs,但我发现实际上很难找到通过网络驱动程序可用的所有命令的列表。在使用 Selenium webdriverjs 编写测试时,是否有可用的命令列表?

例如,我将如何使用 Javascript 实现以下 java 代码

new Wait("Couldn't find close button!") {
  boolean until() {
    return selenium.isElementPresent("button_Close");
  }
};

我知道我可以使用driver.wait,但它无法识别until命令或isElementPresent

4

3 回答 3

8

我在这里直接查看文档的源文件。其实还不错:

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

于 2013-04-16T05:36:05.103 回答
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...)
于 2015-06-26T22:19:58.483 回答
0

@op,最好使用链式语句。我使用 until 和 isElementPresent 命令,它们适用于生产就绪 (CI/CD) 训练流程。因此调整你的代码应该可以工作

var isDisplayed = function(){
        driver.isElementPresent(by.id('button id')).then(function(isDisplayed){
            expect(isDisplayed).to.be.true
        });
    }; 
于 2016-10-31T18:50:42.670 回答