没有找到硒iframe元素

时间:2013-11-14 04:45:49

标签: selenium webdriver selenium-webdriver

我正在尝试使用selenium java代码自动登录http://wallethub.com/。 点击登录链接后,会出现一个包含用户名和密码字段的iframe模式弹出窗口,但是我无法使用以下selenium代码找到用户名字段。

WebDriver d = new FirefoxDriver();
d.get("http://wallethub.com/profile/test_insurance_company/");
WebElement signIn = d.findElement(By.linkText("Sign In"));
signIn.click();

WebElement frame = d.findElement(By.tagName("iframe"));

WebDriver.TargetLocator locator =  d.switchTo();
WebDriver frameDriver = locator.frame(frame);
WebElement active = locator.activeElement();
frameDriver.findElement(By.id("overlay-username")).sendKeys(user);

我的代码在最后一行死掉,说无法找到“overlay-username”字段,但是我已经验证,这个字段存在于firebug控制台中。

这是在linux上。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

正如@Keikoku假设你正在使用错误的iframe。页面中还包含GoogleTagManger。如果您选中frame.getAttribute("src"),则会看到https://apis.google.com/...

您可以使用此选择器选择正确的IFrame:

frame = driver.findElement(By.cssSelector("#wh-overlay-frame-inside iframe"));