使用firefox和Mocha的Selenium不会访问URL

时间:2015-04-13 12:20:45

标签: selenium-webdriver mocha

我相信这段代码存在一个小问题,但我会花几个小时与它斗争,并会感谢一些帮助。

我写了以下简单的代码:

var assert  = require('assert'),
  webdriver = require('selenium-webdriver');

describe('Google Search', function() {
    var driver;

    before(function() {
        console.log("before START")

        driver = new webdriver.Builder()
        .forBrowser('firefox')
        .build();

        console.log("before END")
    });

    it('should work', function(done) {
        console.log("it START")

        driver.get('http://www.google.com/');

        console.log("it END")
    });

    after(function() {
        console.log("after START")

        driver.quit();

        console.log("after END")
    });
});

并运行:

mocha open_google --timeout 15000

我希望firefox打开(在阻止之前),重定向到Google(它),然后关闭(之后)。

然而,它不会发生。我可以看到:

  1. before()和it()快速执行(前4个console.logs几乎立即打印)
  2. 几秒钟后,Firefox被打开,但从未进入谷歌,它只停留在那里直到15秒。
  3. 完成after()块并关闭浏览器
  4. 我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

  

取决于几个因素,包括OS /浏览器组合,   WebDriver可能会也可能不会等待页面加载。在一些   在某些情况下,WebDriver可能会在页面出现之前返回控件   装满,甚至开始装货。为了确保稳健性,您需要   使用Explicit和等待页面中存在的元素   隐含等待。[1]

     

[1]:http://www.seleniumhq.org/docs/03_webdriver.jsp

这意味着,您应该等待一个元素可见,以获得预期的行为。希望这个解决方案能够发挥作用。