Protractor 使用量角器:使用browser.switchTo().frame切换到iframe
因此,我已经编写了测试脚本,其中: 1) 登录到应用程序框架,然后 2) 单击菜单启动我正在测试的应用程序(“MyAwesomeApp.html”用于此帖子) 我的主要问题是:在下面的Protractor 使用量角器:使用browser.switchTo().frame切换到iframe,protractor,angularjs-e2e,Protractor,Angularjs E2e,因此,我已经编写了测试脚本,其中: 1) 登录到应用程序框架,然后 2) 单击菜单启动我正在测试的应用程序(“MyAwesomeApp.html”用于此帖子) 我的主要问题是:在下面的navpanel-spec.js中,我想定位URL,然后在运行MyAwesomeApp的iframe中单击 ****错误尝试以这种方式切换到iframe,但不起作用: browser.switchTo().frame(element(by.id('1')).getWebElement()); cmd提示符中出现错
navpanel-spec.js
中,我想定位URL,然后在运行MyAwesomeApp的iframe中单击
****错误尝试以这种方式切换到iframe
,但不起作用:
browser.switchTo().frame(element(by.id('1')).getWebElement());
cmd提示符中出现错误:
Started
[15:43:29] E/launcher - No element found using locator: By(css selector, *[id="\31 "])
...
sat-navpanel-spec.js:52:24)
这里有两个URL:
1) (主应用程序框架,顶部导航中有菜单系统)
2) (测试脚本在
标记内启动的web应用程序
html如下所示,其中应用程序在
中呈现:
如上所述,量角器有一个bug,它在id元素前面加上前缀“\3”和数字
暂时的方法是更改您的定位器。注意:p这是我第二次看到相同的问题。您的id定位器的前缀为“\3”。此错误仍然存在。请尝试使用其他定位器。我将尝试使用css定位器。Thx。我还将尝试将
名称和id
值从1
更改为其他值。在HTML4中下面,这两个属性不能以数字开头。@finspin-这也是我想到的第一件事。但当然,该应用程序已经以这种方式推出了;但是,嘿,值得一试。我可以随时请求更改div ID属性。感谢您的输入。这与iframe的问题没有直接关系,但看起来您的spec文件是耦合在一起的。您应该避免这种情况,因为您会遇到各种问题。可以直接将登录/启动功能包含到navpanel-spec.js
中,或者使用PageObject模式从单独的节点包调用它。