iframe关闭后,量角器无法正常工作

时间:2014-12-19 04:54:56

标签: iframe webdriver protractor

我有一些像这样的测试代码:

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.

有什么不对吗? 谢谢你的回答

1 个答案:

答案 0 :(得分:1)

最后,我发现为什么它超时了。 似乎@Sakshi Singla谈到角度/非角度问题, 当我运行时:driver.switchTo().frame(driver.findElement(protractor.By.css('[title="Close"]')‌​)‌​.click());我关闭了非角度框架,然后由于同步而切换到默认页面时存货。
我点击关闭按钮后添加它:
browser.ignoreSynchronization = true;
测试现在按预期工作,再也没有超时。