如何使用量角器切换框架

How to switch frames using Protractor

我知道这个问题已被多次询问,建议的解决方案是使用 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 的样子

感谢任何帮助,对于问题的模糊描述,我深表歉意,但我对 coding/protractor e2e 测试还很陌生。

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);
 browser.switchTo().activeElement();

或尝试使用其他可用方法

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