我有一些像这样的测试代码:
describe('fancybox directive ', function() {
var ptor;
it('is fancybox click event', function() {
var fancyContent="<p>Hello</p>";
var fancyWebsite="http://www.somewebsite.com/";
ptor=protractor.getInstance();
element(by.model('content')).clear();
element(by.model('content')).sendKeys(fancyContent);
browser.actions().click(element.all(by.tagName('button')).get(0)).perform();
ptor.sleep(2000);
browser.actions().click(element(by.css('[title="Close"]'))).perform();
ptor.sleep(2000);
element(by.model('content')).clear();
element(by.model('content')).sendKeys(fancyWebside);
browser.actions().click(element.all(by.tagName('button')).get(2)).perform();
ptor.sleep(2000);
driver = ptor.driver;
driver.switchTo().frame(driver.findElement(protractor.By.css('[title="Close"]')).click());
element(by.model('content')).clear();
element(by.model('content')).sendKeys(fancyInline);
...
});
});
在驱动程序切换到iframe并单击“关闭”按钮后,
量角器不会继续运行“clear()”和“sendKeys()”方法。
我尝试添加
<{1}}之前driver.switchTo().defaultContent();
或driver.switchTo().window(handles[0]);
之前element(by.model('content')).clear();
它已停止工作。
abuot几秒钟通过,它继续努力做其他指令测试(我正在测试大约五个指令), 但是我无法理解为什么在切换到iframe之后sopt工作,
不过,我收到了错误消息:Error: Timed out waiting for Protractor to synchronize with the page after 11 seconds.
有什么不对吗? 谢谢你的回答
答案 0 :(得分:1)
最后,我发现为什么它超时了。
似乎@Sakshi Singla谈到角度/非角度问题,
当我运行时:driver.switchTo().frame(driver.findElement(protractor.By.css('[title="Close"]')).click());
我关闭了非角度框架,然后由于同步而切换到默认页面时存货。
我点击关闭按钮后添加它:
browser.ignoreSynchronization = true;
测试现在按预期工作,再也没有超时。