2013-10-09 2 views
9

Я новичок в Selenium. Я просто хочу отправить ключи в текстовое поле пользователя и отправить ключ табуляции одновременно, чтобы текстовое поле могло проверить наличие имени пользователя.sendKeys() in Selenium web driver

Вот код:

driver.findElement(By.xpath("//label[text()='User Name:']/following::div/input")).sendKeys("UserName"); 
driver.findElement(By.xpath("//label[text()='User Name:']/following::div/input")).sendKeys(Keys.TAB); 

Но это одна не работает.

Пожалуйста, помогите мне.

+0

Вы хотите отправить оба ключа одновременно или задержка, а затем Tab? Также есть команда Tab, которая работает сама по себе (без ввода «UserName») –

+0

Он должен ввести имя пользователя сначала, а затем нажать клавишу TAB. – Niks

+0

Возможно, вам просто нужно добавить небольшую команду ожидания между двумя действиями. Вы можете увидеть Selenium введите текст для имени пользователя? –

ответ

9

Я сомневаюсь Keys.TAB в sendKeys методом ... если вы хотите использовать TAB вам нужно сделать что-то, как показано ниже:

Actions builder = new Actions(driver); 
builder.keyDown(Keys.TAB).perform() 
+0

этот тоже не работает .. :( – Niks

+0

Работает для меня. –

0

Попробуйте использовать Robot класс в Java для нажатия клавиши TAB. Используйте приведенный ниже код.

driver.findElement(By.xpath("//label[text()='User Name:']/following::div/input")).sendKeys("UserName"); 

Robot robot = new Robot(); 
robot.keyPress(KeyEvent.VK_TAB); 
robot.keyRelease(KeyEvent.VK_TAB); 
+0

Есть ли другой способ, чем использование робота? – Niks

+0

Вы можете просто щелкнуть по следующему доступному элементу после ввода имени пользователя. 'driver.findElement (By.xpath ("// label [text() = 'User Name:']/follow :: div/input")) sendKeys ("UserName"); '' driver.findElement (By.xpath ("next элемент в веб-странице ")).click(); ' – Hemanth

+0

Я тоже это пробовал, но иногда это работает, а когда-нибудь это не будет – Niks

1

Попробуйте этот код:

WebElement userName = pathfinderdriver.switchTo().activeElement(); 
userName.sendKeys(Keys.TAB); 
+4

Добавьте описание своего кода. Это сделает ответ лучше. –

1

Это команда однолинейный prees «кнопки TAB

driver.findElement(By.id("Enter_ID")).sendKeys("\t"); 
-1
List<WebElement>itemNames = wd.findElements(By.cssSelector("a strong")); 
System.out.println("No items in Catalog page: " + itemNames.size()); 
    for (WebElement itemName:itemNames) 
    { 
     System.out.println(itemName.getText()); 
    } 
+3

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

0

Попробуйте это, безусловно, работает:

driver.findElement(By.xpath("//label[text()='User Name:']/following::div/input")).sendKeys("UserName" + Keys.TAB); 
Смежные вопросы