Categories
iframe java javascript selenium testing

How do you use Selenium to execute javascript within a frame?

I have a page (index.html) which has a frame:

<html>
<body>
<iframe src="https://www.faqcode4u.com/faq/491318/otherPage.html" />
</body>
</html>

And the otherPage.html has the contents:

<html>
<head><link src="https://www.faqcode4u.com/faq/491318/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("https://www.faqcode4u.com/faq/491318/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.