17

我是Selenium的新手。我只想将键发送到用户名文本框并同时发送一个选项卡键,以便文本框可以检查用户名的可用性。

这是代码:

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

但这一个不起作用。

4

11 回答 11

15

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

Actions builder = new Actions(driver);
builder.keyDown(Keys.TAB).perform()
于 2013-10-09T10:08:16.030 回答
3

这是发送 TAB 键的单行命令;

driver.findElement(By.id("Enter_ID")).sendKeys("\t");
于 2016-04-09T18:17:40.220 回答
1

我发现创建一个 var 来保存WebElement和调用sendKeys()对我有用。

WebElement speedCurrentCell = driver.findElement(By.id("Speed_current"));
speedCurrentCell.sendKeys("1300");
于 2020-03-13T19:20:25.567 回答
1

对于蟒蛇硒,

导入库,

from selenium.webdriver.common.keys import Keys

使用此代码按您想要的任何键,

Anyelement.send_keys(Keys.RETURN)

您可以通过搜索找到所有键名selenium.webdriver.common.keys

于 2019-12-17T12:33:20.877 回答
1

我相信 Selenium 现在使用Key.TAB而不是Keys.TAB.

于 2018-05-18T17:23:49.203 回答
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);
于 2013-10-09T10:54:28.983 回答
0

试试这个,它肯定会工作:

driver.findElement(By.xpath("//label[text()='User Name:']/following::div/input")).sendKeys("UserName" + Keys.TAB);
于 2016-12-15T09:00:21.003 回答
0

试试这个代码:

WebElement userName = pathfinderdriver.switchTo().activeElement();
userName.sendKeys(Keys.TAB);
于 2015-12-11T14:18:03.003 回答
0

试试这个,然后导入包:

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");
于 2018-07-25T18:29:37.293 回答
-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());
    }
于 2016-06-20T04:39:08.333 回答
-2

最简单的解决方案是转到构建路径 > 配置构建路径 > Java 编译器,然后从 1.4 中选择“编译器合规级别:”到最新的(可能你有这个)。

于 2019-06-14T15:51:20.673 回答