无法使用Android WebDriver操纵IFrame中的单击
我正在为一个混合应用程序编写一个测试,它在webview中包含一个iframe,我正在尝试单击iframe中的一个按钮 值得一提的是,iframe中的数据位于另一个来源。尽管如此,我还是设法切换到了iframe,我可以看到它的内容(也可以看到元素) 这是我运行的命令序列无法使用Android WebDriver操纵IFrame中的单击,android,node.js,iframe,appium,Android,Node.js,Iframe,Appium,我正在为一个混合应用程序编写一个测试,它在webview中包含一个iframe,我正在尝试单击iframe中的一个按钮 值得一提的是,iframe中的数据位于另一个来源。尽管如此,我还是设法切换到了iframe,我可以看到它的内容(也可以看到元素) 这是我运行的命令序列 return driver .contexts().then(function (contexts) { return browser.context(contexts[1]); // choose the web
return driver
.contexts().then(function (contexts) {
return browser.context(contexts[1]); // choose the webview context
})
.frame('myFrame") //switch to iframe
.getElementById('myButton')
.click() //try to click button
它在iOS模拟器上运行良好,但在安卓系统上却一事无成。测试将继续运行,但未执行任何操作
我正在使用nodejs wd客户机和Genymotion 2.2.2运行Appium 1.2.2
我还在一台真正的android设备和android SDK模拟器上进行了尝试,但都没有成功。好吧,我设法解决了这个问题。我使用xpath查找元素,然后使用
TapeElement()
实现了神奇的效果
return driver
.contexts().then(function (contexts) {
return browser.context(contexts[1]); // choose the webview context
})
.frame('myFrame") //switch to iframe
.elementByXPath('//li[div/span[contains(text(),"Data I want")]]')
.then(function(el){
return driver.tapElement(el);
})
我在中打开了一个关于它的问题,也将在wd的github中打开一个
更新:
可以使用.tap()
链接元素方法:
.elementByXPath('//li[div/span[contains(text(),"Data I want")]]')
.tap()