使用Selenium Webdriver查找并切换到正确的框架

时间:2014-06-04 05:19:17

标签: java iframe xpath selenium-webdriver webdriver

我正在尝试为以下网站编写WebDriver测试用于学习目的:http://www.mate1.com

点击登录链接后,我会收到一个表格,用于填写我的电子邮件ID和密码。据我了解,表单显示在iframe中。

要输入凭据,我尝试识别该特定页面的iframe数量(并将其设置为7)并尝试切换到每个iframe,并通过XPath和ID搜索电子邮件字段。但是,我没有成功找到它。那怎么办呢?

这是我的代码:

driver.get("http:www.mate1.com");
driver.findElement(By.xpath("//*[@id='header-container']/div/a")).click();
List <WebElement> frames = driver.findElements(By.tagName("iframe"));
System.out.println("Totalframes -> "+ frames.size());
driver.switchTo().frame(0);                
driver.findElement(By.xpath("//[@id='email']")).sendKeys("xxxxxxxxx@rocketmail.com");

2 个答案:

答案 0 :(得分:1)

这可能是使用switchTo().frame(WebElement)的好方法:

driver.switchTo().frame(findElement(By.cssSelector(".iframe-container>iframe")));

答案 1 :(得分:0)

登录名和密码字段不在iframe中,您可以直接使用以下代码 -

driver.findelement(By.id(&#34;电子邮件&#34;。)的SendKeys(&#34; xxxxxxxxx@rocketmail.com");

尽量不要切换到任何iframe并执行上面的行,这将有效。