2012-05-15 3 views
4

Я использую Selenium Webdriver на языке Visual Studio C#. Nunit является драйвером тестирования.Webdriver метод «sendkeys» неверно вводит пароль

Я пытаюсь войти на сайт своих компаний с моим именем пользователя и паролем.

query.SendKeys("myusername"); 
query.SendKeys(Keys.Tab); 
query.SendKeys("mypassword"); 

Мой код находит текстовое поле имени пользователя, введите «MyUserName» (пример), вкладки в поле пароля правильно, но то, как он должен ввести «MyPassword» в Pw текстового поля, он расположен к имени пользователя текстовое поле и добавляет (показывая «myusernamemypassword»)

По какой причине он не позволит мне ввести пароль?

ответ

5

Метод SendKeys будет отправлять символы в зависимости от того, какой объект WebElement вы его вызывали, в этом случае запрос. Даже после перехода к следующему объекту все равно будет отправляться ключ к элементу запроса. По моему опыту, использование клавиш (например, вкладка) для перехода между элементами имеет тенденцию быть непоследовательным и ненадежным. Вместо этого, попробовать что-то вроде этого:

WebElement userNameField = driver.findElement(By.id("userNameTextBoxId")); 
WebElement passwordField = driver.findElement(By.id("passwordTextBoxId")); 
userNameField.sendKeys("myusername"); 
passwordField.sendKeys("mypassword"); 

Если у вас нет иды на текстовые поля, есть несколько других идентификаторов, которые можно использовать, например, как имя класса и XPath (хотя у меня был неудачный опыт с XPath в selenium - использовать id по возможности).

+1

Это работало как CHARM. Спасибо!!! – lbrown

Смежные вопросы