Selenium id =未找到电子邮件

时间:2013-12-17 23:09:14

标签: java selenium selenium-webdriver

我正在使用Selenium WebDriver尝试捕获电子邮件地址字段以登录我们的网站。

我检测电子邮件地址字段的代码,以便我可以插入电子邮件:

WebDriverWait wait = new WebDriverWait(driver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.id(("email"))));
WebElement email = driver.findElement(By.id("email"));
email.sendKeys(email);

网页上的HTML是:

<input type="text" title="Email Address" class="input-text required-entry validate-email"
id="email" value="" name="login[username]">

问题是,Selenium报告它无法找到id = email ???

浏览器是IE。适用于FF和Chrome。

2 个答案:

答案 0 :(得分:2)

IE有时会以不同的方式呈现页面。你确定IE中的HTML是一样的吗?

由于您的代码在FF和Chrome中运行良好,我现在可以建议尝试不同的定位器。但请发布您的确切堆栈跟踪,确切的例外是什么。

替换

By.id("email")

以下其中一项

By.cssSelector("#email")
By.xpath(".//input[@id='email']")

By.cssSelector("input[title='Email Address']")
By.xpath(".//input[@title='Email Address']")

答案 1 :(得分:0)

如果添加了任何新字段,xpath可能会更改,因此总是更好地使用名称或ID

driver.findElement(By.name("login[username]"));