Selenium:无法访问iframe及其内部的数据
本文关键字:内部 数据 iframe 访问 Selenium | 更新日期: 2023-09-27 18:27:00
我有这样的iframe: HTML代码
<iframe class="class1" prio="0" title="Details" type="detail" source="/something/somepage.aspx" style="display:none" frameborder="0"></iframe>
当它在当前页面上打开一个弹出窗口时,这个框架内有一个菜单、文本输入和按钮。Popup如上所述从源页面获取数据。
我尝试了不同的方法,即手动找到iframe的索引,然后显示它的标题,看看我是否在正确的框架上,但没有运气。
我试图在iframe中的表单中键入数据,然后返回主页,但我对此一无所知。请帮忙!
SwitchTo()
方法采用index、name或frame元素,因此您可以尝试使用name或frameelement。
//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();
你试过了吗(java代码):
driver.switchTo().frame("iFrameName");
driver.findElement(By.id("formOne")).click();
driver.findElement(By.id("formOne")).sendKeys("abc");