2017-11-30 18 views
0

여러 번 질문 했으므로 제안 된 해결책은 browser.driver.switchTo('your-frame-name')과 같은 것이었지만 내 코드에서 동일한 switchTo() 메소드에 액세스 할 수없는 것으로 보입니다.각도기를 사용하여 프레임을 전환하는 방법

import { AppPage } from './app.po'; 
import {browser, by, element} from 'protractor'; 

describe('angular-test App',() => { 
    let page: AppPage; 

    beforeEach(() => { 
    page = new AppPage(); 
    }); 

    it('should display welcome message',() => { 
    page.navigateTo(); 
    browser.driver.switchToParentFrame() 

    //expect(page.getParagraphText()).toEqual('Welcome to app!'); 
    expect(element(by.id('myHeader')).getText()).toEqual('Welcome to Angular Test App! '); 
    }); 
}); 

switchToParentFrame() 내가 browser.driver 후 얻을 수있는 유일한 방법입니다 :

내 테스트입니다.

이 내 HTML이

enter image description here

처럼 어떤 도움이 질문의 막연한 설명 죄송합니다, appreaciated하지만 코딩/각도기 E2E 테스트 꽤 새로운 해요되는 모습입니다.

+2

좋은 시작이 API를 살펴 가지고하는 것입니다 가능한 다른 방법을 실험 해보십시오 http://www.protractortest.org/#/api ? view = webdriver.WebDriver.prototype.switchTo –

+0

[각도기 : Iframe에 각진 앱 테스트] (https://stackoverflow.com/questions/20425909/protractor-testing-angular-app-in-an-iframe)의 복제본이있을 수 있습니다.) – Andersson

+0

각도기의 최신 버전을 사용하고 있습니까? – HaC

답변

0
browser.switchTo().frame(element(by.tagName('iframe')).getWebElement()); 
+0

분명히 내 IDE가 switchTo() 메소드를 인식하지 못했습니다. – fOcusWow

0
var elem = element(by.xpath('iframe element')); // .//div[contains(@id,\'cke\')]/iframe 
browser.sleep(3000); 
elem.click();  
browser.switchTo().frame(elem.getWebElement());  
browser.sleep(3000);  
element(by.tagName('body')).sendKeys('test');  
browser.switchTo().defaultContent();  
browser.sleep(3000); 
0
browser.switchTo().activeElement(); 

또는