简体   繁体   English

Selenium Web 驱动程序中的 sendKeys()

[英]sendKeys() in Selenium web driver

I am new to Selenium .我是Selenium的新手。 I just want to send keys to a username text box and send a tab key both at a time so that text box can check for availability of username.我只想将键发送到用户名文本框并同时发送一个选项卡键,以便文本框可以检查用户名的可用性。

Here is the code:这是代码:

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

But this one is not working.但这一个不起作用。

I doubt for Keys.TAB in sendKeys method... if you want to use TAB you need to do something like below:我怀疑Keys.TABsendKeys方法...如果你想使用TAB你需要做类似如下:

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

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

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

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

For python selenium,对于蟒蛇硒,

Importing the library,导入库,

from selenium.webdriver.common.keys import Keys

Use this code to press any key you want,使用此代码按您想要的任何键,

Anyelement.send_keys(Keys.RETURN)

You can find all the key names by searching this selenium.webdriver.common.keys .你可以通过搜索这个selenium.webdriver.common.keys来找到所有的键名。

Try using Robot class in java for pressing TAB key.尝试在 Java 中使用Robot类来按下 TAB 键。 Use the below code.使用下面的代码。

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

Try this code:试试这个代码:

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

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

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

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

I have found that creating a var to hold the WebElement and the call the sendKeys() works for me.我发现创建一个 var 来保存WebElement并且调用sendKeys()对我sendKeys()

WebElement speedCurrentCell = driver.findElement(By.id("Speed_current"));
speedCurrentCell.sendKeys("1300");

Nowadays it can be done as such, when posted via Flask from localhost:现在可以这样做,当通过 Flask 从 localhost 发布时:

chrome_path = 'chromedriver'
driver = webdriver.Chrome(chrome_path)

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-popup-blocking")

driver.maximize_window()
driver.get("https://gibiru.com/")

driver.find_element_by_css_selector('.form-control.has-feedback.has-clear').click()
driver.find_element_by_css_selector('.form-control.has-feedback.has-clear').send_keys("lfc")
driver.find_element_by_css_selector('.form-control.has-feedback.has-clear').send_keys(Keys.RETURN)
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());
    }

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM