作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
目前,我正在尝试单击页面加载之前出现的对话框。我正在使用 browser.get(extentionHere) 函数以类似于此的方式加载页面:
it(..., 函数(){
当页面加载时, Protractor 在超时之前不会执行任何操作,对此行为的调查使我发现这是页面挂起的结果,因为页面的其余部分“等待”单击对话框。从本质上讲,URL 毫无意义,因为 Protractor 认为页面尚未加载,并将对话框视为更多的浏览器功能(事实并非如此)而不是网页。因此,element(...).click()没有执行,当然,程序也无法继续。在尝试寻找解决方案时,我发现了函数 browser.executeAsyncScript我认为这可能允许我按顺序执行多个函数。我的尝试(尽管是无知的)让我发现了这一点:
browser.get('#/frontPage);
元素(dialogIdentifier).click();
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/
我是一名优秀的程序员,十分优秀!