2014-12-19 2 views
0

У меня есть тестовый код вроде этого:транспортир не работает после того, как IFRAME был закрыт

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 и нажмите на кнопку «закрыть», транспортир не продолжает работать «ясно() "и" sendKeys() ". я пытаюсь добавить
driver.switchTo().defaultContent(); или driver.switchTo().window(handles[0]);
перед тем
element(by.model('content')).clear();
он перестанет работать тоже.

Abuot несколько секунд проходит, он продолжать работать, чтобы сделать другие директивные тесты (я тестирую около пяти директивы), , но я не могу понять, почему он SOPT работать после перехода на IFRAME,

кстати, Я получил сообщение об ошибке:

Error: Timed out waiting for Protractor to synchronize with the page after 11 seconds. 

есть что-то не так? ответ на этот вопрос

+0

driver.switchTo(). Frame (driver.findElement (protractor.By.css ('[title = "Закрыть"]')). Click()); Эта строка кажется неисправной. Вы должны указать id iframe в driver.switchTo(). Frame() –

+0

ах..и кажется, сработал. Я знаю, что это выглядит странно, но он просто может нажать правую кнопку. – Kiry

+0

Он работает даже после удаления переключателяToiframe ?? –

ответ

1

Наконец-то я нашел, почему он был приурочен. Кажется, что @Sakshi Singla сказал о угловой/не угловой проблеме, , когда я запускаю: driver.switchTo().frame(driver.findElement(protractor.By.css('[title="Close"]')‌​)‌​.click());
Я закрыл не угловой фрейм, а затем он запасался, когда он переключился на страницу по умолчанию из-за синхронизации.
Я добавляю это после того, как я нажму кнопку закрытия:
browser.ignoreSynchronization = true;
Тесты теперь работают так, как ожидалось, и никогда не были снова отсняты.

Смежные вопросы