问题 selenium web驱动程序中的sendKeys()


我是新手 。我只想将密钥发送到用户名文本框并一次发送一个tab键,以便文本框可以检查用户名的可用性。

这是代码:

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

但是这个没有用。

请帮帮我。


4552
2017-10-09 09:50


起源

你想同时发送两个密钥还是延迟然后Tab? Tab命令是否独立工作(没有输入“UserName”)? - Lt_Shade
它应首先输入用户名,然后按TAB键。 - Niks
您可能只需要在两个操作之间添加一个轻微的等待命令。你能看到Selenium进入用户名的文本吗? - Lt_Shade
你的方法适合我。此外,你可以做到 driver.findElement(By.xpath("...")).sendKeys("UserName" + Keys.TAB); 甚至 driver.findElement(By.xpath("...")).sendKeys("UserName", Keys.TAB);。所有这些对我有用。 - Petr Janeček
@Lt_Shade我确实看到selenium输入用户名的文本。我试过在两者之间添加等待。 - Niks


答案:


我怀疑 Keys.TAB 在 sendKeys 方法...如果您想使用TAB,您需要执行以下操作:

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

10
2017-10-09 10:08





试试这段代码:

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

1
2017-12-11 14:18



在代码中添加一些解释。它会使答案更好。 - Fᴀʀʜᴀɴ Aɴᴀᴍ


这是单行命令,可以使用“TAB Button”

driver.findElement(By.id("Enter_ID")).sendKeys("\t");

1
2018-04-09 18:17





尝试使用 Robot 用于按TAB键的java类。使用以下代码。

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
2017-10-09 10:54



除了使用机器人还有其他方法吗? - Niks
输入用户名后,您只需单击下一个可用元素即可。 driver.findElement(By.xpath("//label[text()='User Name:']/following::div/input")).sendKeys("UserName");  driver.findElement(By.xpath("next element in webpage")).click(); - Hemanth
我也试过了,但它有时会起作用,有时则不会 - Niks
您是否正在等待消息(可用的用户名)出现? - Hemanth


试试这个,肯定会起作用:

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

0
2017-12-15 09:00





我相信Selenium现在使用 Key.TAB 代替 Keys.TAB


0
2018-05-18 17:23





Try this one,and then import the package 

import org.openqa.selenium.Keys;

        driver.findElement(By.xpath("//*[@id='username']")).sendKeys("username");

        driver.findElement(By.xpath("//*[@id='username']")).sendKeys(Keys.TAB);

        driver.findElement(By.xpath("//*[@id='Password']")).sendKeys("password");

0
2017-07-25 18:29