Метод sendkeys Webdriver неправильно вводит пароль

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

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

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

Мой код находит текстовое поле имени пользователя, введите «myusername» (пример), вкладки в поле пароля правильно, но затем, поскольку он должен ввести «mypassword» в текстовое поле pw, он расположен до текстового поля имени пользователя и добавляет (показывая « мое имя пользователямой пароль")

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


person lbrown    schedule 15.05.2012    source источник


Ответы (1)


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

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

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

person AndyPerfect    schedule 15.05.2012