2013-10-09 37 views
9

Jestem nowy w firmie Selenium. Chcę tylko wysłać klucze do pola tekstowego nazwy użytkownika i wysłać klawisz tabulacji jednocześnie, aby pole tekstowe mogło sprawdzić dostępność nazwy użytkownika.sendKeys() w sterowniku sieci Selenium

Oto kod:

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); 

Ale to nie działa.

Proszę, pomóż mi.

+0

Czy chcesz wysłać oba klucze w tym samym czasie lub mieć opóźnienie, a następnie Tab? Czy też polecenie Tab działa samodzielnie (bez wprowadzenia "UserName")? –

+0

Najpierw należy wprowadzić nazwę użytkownika, a następnie nacisnąć klawisz TAB – Niks

+0

Może być konieczne dodanie krótkiego polecenia wait pomiędzy tymi dwoma działaniami. Czy widzisz Selenium? wprowadzanie tekstu dla nazwy użytkownika? –

Odpowiedz

9

Wątpię dla Keys.TAB w sendKeys metody ... jeśli chcesz używać TAB trzeba zrobić coś jak poniżej:

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

to nie działa zbyt. :( – Niks

+0

Działa dla mnie.Dziękuję –

0

Spróbuj użyć Robot klasy w Javie za pomocą klawisza TAB. Użyj poniższego kodu.

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

czy istnieje inny sposób niż użycie robota? – Niks

+0

Możesz po prostu kliknąć na następny dostępny element po wprowadzeniu nazwy użytkownika. 'driver.findElement (By.xpath ("// label [text() = 'User Name:']/following :: div/input")). SendKeys ("UserName"); '' driver.findElement (By.xpath ("next element na stronie ")).click(); ' – Hemanth

+0

Próbowałem też, ale czasami działa, a czasem nie będzie – Niks

1

Spróbuj kod:

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

Dodaj wyjaśnienie do swojego kodu. Ułatwi to odpowiedź. –

1

To jest polecenie pojedyncza linia do Prees „zakładkę Przycisk

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

Opublikuj opis powyżej kodu, aby inni mogli zrozumieć, co zrobiłeś –

0

spróbować, ale na pewno działa:

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