我正在寻找一种快速的方法来键入进入或返回键在硒。
不幸的是,我试图测试的表单(不是我自己的代码,所以我不能修改)没有Submit按钮。当手动使用它时,我只需输入Enter或Return。我怎么能做到这一点与硒类型命令,因为没有按钮点击?
我正在寻找一种快速的方法来键入进入或返回键在硒。
不幸的是,我试图测试的表单(不是我自己的代码,所以我不能修改)没有Submit按钮。当手动使用它时,我只需输入Enter或Return。我怎么能做到这一点与硒类型命令,因为没有按钮点击?
当前回答
Java远程控制:
selenium.keyPress("elementID", "\13");
对于Java的Selenium WebDriver(也就是Selenium 2):
driver.findElement(By.id("elementID")).sendKeys(Keys.ENTER);
Or,
driver.findElement(By.id("elementID")).sendKeys(Keys.RETURN);
在WebDriver中按Enter的另一种方法是使用Actions类:
Actions action = new Actions(driver);
action.sendKeys(driver.findElement(By.id("elementID")), Keys.ENTER).build().perform();
其他回答
selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");
如果你正在寻找“如何在Selenium WebDriver (Java)中从键盘按Enter键”,那么下面的代码一定会帮助你。
// Assign a keyboard object
Keyboard keyboard = ((HasInputDevices) driver).getKeyboard();
// Enter a key
keyboard.pressKey(Keys.ENTER);
要使用Selenium输入键,首先需要导入以下库:
import org.openqa.selenium.Keys
然后在想要输入密钥的地方添加此代码
WebElement.sendKeys(Keys.RETURN);
您可以根据需要将RETURN替换为列表中的任何键。
如果你是在这种情况下:
a)只是想按下键,但你没有一个特定的webElement来点击
b)您正在使用Selenium 2 (WebDriver)
那么解决方案是:
Actions builder = new Actions(webDriverInstance);
builder.sendKeys(Keys.RETURN).perform();
Java
driver.findElement(By.id("Value")).sendKeys(Keys.RETURN);
OR,
driver.findElement(By.id("Value")).sendKeys(Keys.ENTER);
Python
from selenium.webdriver.common.keys import Keys
driver.find_element_by_name("Value").send_keys(Keys.RETURN)
OR,
driver.find_element_by_name("Value").send_keys(Keys.ENTER)
OR,
element = driver.find_element_by_id("Value")
element.send_keys("keysToSend")
element.submit()
Ruby
element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.submit
OR,
element = @driver.find_element(:name, "value")
element.send_keys "keysToSend"
element.send_keys:return
OR,
@driver.action.send_keys(:enter).perform
@driver.action.send_keys(:return).perform
C#
driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);
OR,
driver.FindElement(By.Id("Value")).SendKeys(Keys.Enter);