Firefox

时间:2016-11-16 16:19:28

标签: node.js selenium testing mocha selenium-firefoxdriver

我有一些问题打开到Selenium + mocha的网址。这是我使用的代码行。

return driver.get('http://localhost/ClickSuscribe/#/MisProductos')

我发现角网址存在一些问题,但我还没有找到解决方案。

错误为Error: timeout of 40000ms exceeded. Ensure the done() callback is being called in this test.

这是测试用例:

it("Is visible", function() {
        if(viable)
        {
            return driver.findElements(webdriver.By.id('activarMiSitio')).then(function(misProductos){
                misProductos[0].getAttribute("class").then(function(webElement){
                    if(webElement==='ng-hide')
                    {
                        console.log('Element not found');
                    }
                    else{
                        console.log('Element exists');
                    }
                }).then(function(){
                    driver.sleep(500);
                    //return driver.get('http://localhost/ClickSuscribe/#').catch(r => console.log(r));
                    return driver.get('http://localhost/ClickSuscribe/#/MisProductos').catch(r => console.log(r));
                });/*.then(function(){
                    driver.sleep(2000);
                    return driver.getCurrentUrl();
                }).then(function(currentUrl){
                    driver.sleep(1000);
                    console.log(currentUrl);
                });*/
            });
        }
        return console.log("No está loggeado");
    });

PS:这在Chrome和IE中都有效。似乎selenium在处理带有锚或磅的URL方面存在问题,'#'。

1 个答案:

答案 0 :(得分:0)

错误说

  

确保在此测试中调用done()回调。

您可以按如下方式注入done回调:

it("Is visible", function(done) {
  //...
});

并设置每次测试完成的超时时间:

describe('...', function(){
  this.timeout(15000);

  it('...', function(done){
    this.timeout(15000);
    setTimeout(done, 15000);
  });
});

可以找到更多信息in the docs

还有一些known issues,所以我建议升级您的依赖项。