javascript - 在 Protractor 中加载页面之前单击对话框

标签 javascript html angularjs selenium protractor

目前,我正在尝试单击页面加载之前出现的对话框。我正在使用 browser.get(extentionHere) 函数以类似于此的方式加载页面:

it(..., 函数(){ browser.get('#/frontPage); 元素(dialogIdentifier).click(); 当页面加载时, Protractor 在超时之前不会执行任何操作,对此行为的调查使我发现这是页面挂起的结果,因为页面的其余部分“等待”单击对话框。从本质上讲,URL 毫无意义,因为 Protractor 认为页面尚未加载,并将对话框视为更多的浏览器功能(事实并非如此)而不是网页。因此,element(...).click()没有执行,当然,程序也无法继续。 在尝试寻找解决方案时,我发现了函数 browser.executeAsyncScript我认为这可能允许我按顺序执行多个函数。我的尝试(尽管是无知的)让我发现了这一点:

    browser.executeAsyncScript('browser.get("#/frontPage")').then(function () {  
          element(dialogIdentifier)).click();
    });

正如我提出这个问题所暗示的那样,它不起作用(给了我某种“浏览器不是函数”错误),如果我什至为了正确的目的而正确使用这个函数,它似乎适合账单;允许我单击该对话框。 任何帮助将不胜感激(我不会限制任何功能的答案。所以请让我知道您有什么想法)。

提前致谢。

最佳答案

我假设 Angular 未加载,因为对话框在页面加载之前弹出。下面的代码告诉 Protractor 不要等待 Angular 同步,然后在单击对话框后恢复同步。

browser.ignoreSynchronization = true;
browser.get("http://www.google.ca").then(function () {
    element(dialogIdentifier).click();
});
browser.ignoreSynchronization = false;

关于javascript - 在 Protractor 中加载页面之前单击对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36483508/

相关文章:

javascript - 正则表达式字边界仅用于空白

javascript - Bootstrap 更改按钮颜色

php - 我在自定义 wordpress 主题中做错了什么

html - 显示内部 div 溢出 :visible of parent overflow:hidden

javascript - {{result}} 和 $scope.result 在 AngularJS 中如何关联?

javascript - ngClick 切换类影响所有元素

Javascript 和 ASP MVC - 刷新图像

javascript - Chrome : Print exception details to console

javascript - 如何在一个页面中包含网站的多个部分

javascript - 嵌套 ng-repeat 无法正常工作