无法使用量角器在iframe中找到文本字段

时间:2015-01-28 10:37:56

标签: angularjs testing iframe protractor end-to-end

<iframe class="embedded-tax-form" scrolling="no" seamless="seamless" src="http://forms.tax-api-1w7xi0.addevcloudsites.myob.com/au-fbt-2015/1.0.0/?host=addevcloudsites.myob.com&amp;client=deb4bb44-994f-4ce7-aea8-6507925beb8a" id="iFrameResizer1" style="overflow: hidden; height: 3971px;"></iframe>
<input id="input.ReportingParty.Identifiers.TaxFileNumber.Identifier" type="text" ng-model="form.fields['ReportingParty.Identifiers.TaxFileNumber.Identifier'].value" ng-change="run()" class="form-control ng-pristine ng-valid ng-touched" ng-readonly="form.fields['ReportingParty.Identifiers.TaxFileNumber.Identifier'].source === 'calculation'" source-selection="ReportingParty.Identifiers.TaxFileNumber.Identifier">

我在Iframe中嵌入了文本字段,我正在使用Protractor并编写如下代码,因为我们不需要实例化最新的protract:

it('should show the functioning input directive example', function () {
      browser.get('http://qa5.addevcloudsites.myob.com/tax/edit/?client=4cccbc62-15b1-41e3-a9ed-0d93e7d05db2');
      // Ensure that the page is loaded before trying to switch frames.
      browser.waitForAngular();
      browser.switchTo().frame('embedded-tax-form');
      var nameInput = element(by.model("form.fields['ReportingParty.Identifiers.TaxFileNumber.Identifier'].value"));
      nameInput.sendKeys('222);
    });

当我运行此页面时,完整页面会刷新并显示

  

ReferenceError:未定义iframe NoSuchFrameError:没有这样的框架

我检查了元素是否存在于控制台上并且使用了元素:

 elementArrayFinder_:    { getWebElements: [Function],
     actionResults_: undefined,
     locator_: { using: 'css selector', value: '.embedded-tax-form' },
     click: [Function],

让我知道,我最近应该如何处理量角器。如果您需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

browser.switchTo()。帧( 'iFrameResizer1')。 因为这需要和ID,你给的是类名!

希望这有效!