Selenium:无法访问其中的iframe和数据

时间:2012-03-07 19:40:04

标签: c# selenium

对于iframe,我有这样的HTML代码:

<iframe class="class1" prio="0" title="Details" type="detail" source="/something/somepage.aspx" style="display:none" frameborder="0"></iframe>

此框架内有一个菜单,文本输入和按钮,因为它会在当前页面上打开一个弹出窗口。弹出窗口从源页面获取其数据。

我尝试了不同的方法,即通过手动查找iframe的索引,然后显示其标题,看看我是否在正确的框架但没有运气。

我正在尝试在iframe中的表单中键入数据,然后返回到主页但是一无所知。请帮忙!

2 个答案:

答案 0 :(得分:13)

SwitchTo()方法采用索引,名称或框架元素,因此您可以尝试使用名称或框架元素。

//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();

答案 1 :(得分:5)

你试过(java代码):

driver.switchTo().frame("iFrameName");

driver.findElement(By.id("formOne")).click();
driver.findElement(By.id("formOne")).sendKeys("abc");