2017-11-30 17 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(); 

または

関連する問題