【问题标题】:How do I expect the page loads to execute the next command in protractor?我如何期望页面加载在量角器中执行下一个命令?
【发布时间】:2015-07-15 23:48:37
【问题描述】:

我需要解决这个问题。我在量角器中进行了测试,但它们失败了,因为命令在页面加载之前执行。我使用睡眠功能试图解决这个问题,但这不是更好的方法,在某些时候也失败了。 我尝试了以下全局函数,但有时会显示错误“元素在点 (39, 109) 处不可点击。其他元素会收到点击:”显示给我,即使按钮已被点击:

global.waitForElementToBeLoaded = function(locator, identifier){
    var elementToFind = locator(identifier);
    browser.wait(function(){
        return        browser.driver.isElementPresent(elementToFind).then(function(found){
        return found;
});
}, 60000, "The test execution timed out waiting for " + elementToFind);
     expect(browser.driver.isElementPresent(elementToFind)).toBeTruthy();
     return browser.element(locator(identifier));
};

【问题讨论】:

    标签: protractor


    【解决方案1】:

    我对你的代码 sn-p 感到困惑。不应该等待超时和消息在browser.wait

    browser.wait(function(){
            return  browser.driver.isElementPresent(elementToFind).then(function(found){
               return found;
                  }, 60000, "The test execution timed out waiting for " + identifier);
    

    有时仅isElementPresent 是不够的,您可能需要将其与isDisplayed() 结合起来,如下所示。不幸的是,没有一次尺寸适合所有等待条件,有时您可能想要等待元素的可见性,有时是不可见性,可点击性等。selenium-webdriver 提供 many useful methods 作为 until 对象的一部分,您可以利用它们就事论事。

    browser.wait(function(){
                return  browser.driver.isElementPresent(elementToFind).then(function(found){
                   if(found) {
                     return browser.driver.isDisplayed(elementToFind).then(function(displayed) {
                         return displayed;   
                      }
                   } 
                    return found;
        }, 60000, "The test execution timed out waiting for " + identifier);
    

    【讨论】:

      【解决方案2】:

      我发现这在我需要在页面加载后发生某些事情的情况下很有用。

      browser.wait(protractor.until.titleIs("Some Page"), 10000, "✗ Failed to wait for the page to load").then(function(){ // DO Stuff });

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-11-07
        • 1970-01-01
        • 2018-02-07
        相关资源
        最近更新 更多