Reputation: 3538
I have a page (index.html) which has a frame:
<html>
<body>
<iframe src="otherPage.html" />
</body>
</html>
And the otherPage.html has the contents:
<html>
<head><link src="jquery-min.js" type="text/javascript" /></head>
<body><div id="main">Contents</div></body>
</html>
I am attempting to use the following selenium code on index.html:
selenium.open("index.html");
selenium.selectFrame("//iframe");
selenium.getEval("window.jQuery('div[id=main]')");
However this fails miserably. It says that the jQuery object doesn't exist.
If I attempt to execute the selenium test on the otherPage like so:
selenium.open("otherPage.html");
selenium.getEval("window.jQuery('div[id=main]')");
everything is hunky dory.
Right now this is pseudo code, if people want me to make it compile I'll do that and put it on github.
Upvotes: 12
Views: 38002
Reputation: 1524
You can use :
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("javascript:sendEvent('play');");
Upvotes: 11
Reputation: 22418
Selenium stores the Window Object within its own object so it can manipulate it better. Once you move to the frame it should be like this.
selenium.getEval("var window = this.browserbot.getUserWindow();window.jQuery('div[id=main]')");
And that should work for you
I have a tutorial on my site for this type of situation here
Upvotes: 12