javascript - 在其他非 Angular 应用程序的 iframe 中进行 Protractor 测试?

标签 javascript angularjs selenium-webdriver protractor

我的应用程序与其他站点集成。该集成是通过单击按钮建立的。当我单击按钮时,弹出窗口显示来自另一个站点的 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/

相关文章:

python-2.7 - 如何在 python 中使用 webdriver 选择下拉列表值

javascript - 关闭时如何在对话框中杀死所有生命?

javascript - Javascript 中数学的替代方案

javascript - AngularJS:计算 ng-repeat 的迭代次数

html - 具有 2 个条件的 Ng 级

python - 如何使用 Selenium 单击打开的应用程序警报

c# - 需要在 Selenium C# 中使用 EventFiringWebDriver 和 OnFindingElement 或 OnElementClicked 的工作示例?

javascript - 如何使用jquery取消选择变量中选定的选择框

javascript - Nashorn Javascript 和 ES6

angularjs - ionic 选项卡内的动态文本