我的应用程序与其他站点集成。该集成是通过单击按钮建立的。当我单击按钮时,弹出窗口显示来自另一个站点的 html。我通过将 URL 放入 iframe 来显示使用它的内容。网址来自外部网站:
<iframe class='' ng-src="{{url}}"></iframe>
我可以对该弹出窗口中的元素执行我的 Protractor 测试吗?
当我尝试通过 ID 访问弹出窗口中的元素时,它显示找不到这样的元素。我通过 Firefox 上的 Firebug 工具获得了元素的 ID。我点击了这个,它返回 false:
expect(element(by.id('**id of element in pop-up**')).isDisplayed()).toBe(true);
有人可以帮我解决这个问题吗?是否可以在这种 html 上运行 Protractor 测试?
最佳答案
您需要将上下文切换到 iframe。您可以通过添加以下代码行来做到这一点:
var driver = ptor.driver;
ptor.switchTo().frame(driver.findElement(protractor.By.tagName('iframe')));
现在尝试在弹出窗口中访问您的元素?
关于javascript - 在其他非 Angular 应用程序的 iframe 中进行 Protractor 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23805527/