1

我正在尝试使用 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);

我的代码在最后一行死了,说找不到“覆盖用户名”字段,但是我已经验证,这个字段存在于 firebug 控制台中。

这是在linux上。

任何帮助将不胜感激。

4

1 回答 1

1

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

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

frame = driver.findElement(By.cssSelector("#wh-overlay-frame-inside iframe"));
于 2013-11-14T08:42:53.763 回答