你如何使用Selenium在一个框架内执行javascript?

我有一个页面(index.html)有一个框架:

     

而otherPage.html的内容如下:

   
Contents

我试图在index.html上使用以下selenium代码:

 selenium.open("index.html"); selenium.selectFrame("//iframe"); selenium.getEval("window.jQuery('div[id=main]')"); 

然而,这失败了。 它说jQuery对象不存在。

如果我尝试在otherPage上执行selenium测试,如下所示:

 selenium.open("otherPage.html"); selenium.getEval("window.jQuery('div[id=main]')"); 

一切都很笨拙。

现在这是伪代码,如果人们想让我编译它我会这样做并把它放在github上。

Selenium将Window对象存储在自己的对象中,以便更好地操作它。 一旦你移动到框架,它应该是这样的。

 selenium.getEval("var window = this.browserbot.getUserWindow();window.jQuery('div[id=main]')"); 

这应该对你有用

我在这个网站上有关于此类情况的教程

您可以使用 :

 JavascriptExecutor js = (JavascriptExecutor) driver; js.executeScript("javascript:sendEvent('play');");