2013-12-17 2 views
0

Я использую Selenium WebDriver, чтобы попытаться захватить поле адреса электронной почты для входа на наш сайт.Selenium id = email не найден

Мой код для обнаружения поле адреса электронной почты, так что я могу вставить электронной почты является:

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]"> 

Проблема заключается в том, Селен отчетности он не может найти id = email ???

Браузер IE. Работает нормально в FF и Chrome.

ответ

2

IE иногда делает страницу по-разному. Вы уверены, что HTML одинаковый в IE?

Поскольку ваш код отлично работает в 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']") 
+0

Это работал: By.xpath (".// input [@ title = 'Email Address']") – RalphF

0

XPath может измениться, если любое новое поле добавляется, поэтому всегда лучше использовать имя или идентификатор

driver.findElement(By.name("login[username]")); 
Смежные вопросы