无法使用Android WebDriver操纵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

我正在为一个混合应用程序编写一个测试,它在webview中包含一个iframe,我正在尝试单击iframe中的一个按钮

值得一提的是,iframe中的数据位于另一个来源。尽管如此,我还是设法切换到了iframe,我可以看到它的内容(也可以看到元素)

这是我运行的命令序列

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()