目前我正在尝试点击页面加载前出现的对话框。我正在使用browser.get(extentionHere)函数以类似于这样的方式加载页面:
it(..., function(){
browser.get('#/frontPage);
element(dialogIdentifier).click();
当页面加载时,Protractor在超时之前什么都不做,对这种行为的调查让我发现这是页面的其余部分挂起的结果等待'单击对话框。本质上,URL是没有意义的,因为Protractor认为页面没有加载,并将对话视为更多的浏览器功能(它不是)而不是网页。因此,元素(...)。click()没有执行,当然,程序无法继续。
在尝试找到解决方案时,我发现函数browser.executeAsyncScript,我认为可能允许我按顺序执行多个函数。我虽然无知,但却尝试了这个:
browser.executeAsyncScript('browser.get("#/frontPage")').then(function () {
element(dialogIdentifier)).click();
});
,正如我提出这个问题所暗示的那样,没有用(给我某种"浏览器不是函数"错误),如果我甚至正确地使用这个函数用于正确的目的它似乎符合要求;允许我单击对话框。 任何帮助将不胜感激(我不限制任何功能的答案。所以,请让我知道你有什么想法。)
提前致谢。
答案 0 :(得分:1)
我假设角度没有加载,因为在页面加载之前弹出对话框。下面的代码告诉量角器不要等待角度同步,然后在单击对话框后恢复同步。
browser.ignoreSynchronization = true;
browser.get("http://www.google.ca").then(function () {
element(dialogIdentifier).click();
});
browser.ignoreSynchronization = false;