我正在使用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。
答案 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]"));