I have HTML code like this for an iframe:
<iframe class="class1" prio="0" title="Details" type="detail" source="/something/somepage.aspx" style="display:none" frameborder="0"></iframe>
This frame has a menu, text input and buttons inside it as it opens a popup on the current page. Popup gets its data from the source page as above.
I tried different approaches i.e. by finding index manually of the iframe and then display its title to see if I am at the right frame but had no luck with it.
I am trying to type data in the form in iframe and then get back to the main page but am being clueless. Please help!
SwitchTo()
method takes index, name or frame element, so you can try use name or frame element.
//find the frame by class/title/type/source
IWebElement detailFrame = driver.FindElement(By.XPath("//iframe[@class='class1']"));
driver.SwitchTo().Frame(detailFrame);
//alternatively, find the frame first, then use GetAttribute() to get frame name
IWebElement detailFrame = driver.FindElement(By.XPath("//iframe[@class='class1']"));
driver.SwitchTo().Frame(detailFrame.GetAttribute("name"));
//you are now in iframe "Details", then find the elements you want in the frame now
IWebElement foo = driver.FindElement(By.Id("foo"));
foo.Click();
//switch back to main frame
driver.SwitchTo().DefaultContent();
Did you try (java code):
driver.switchTo().frame("iFrameName");
driver.findElement(By.id("formOne")).click();
driver.findElement(By.id("formOne")).sendKeys("abc");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With