我正在寻找一种快速的方法来键入进入或返回键在硒。
不幸的是,我试图测试的表单(不是我自己的代码,所以我不能修改)没有Submit按钮。当手动使用它时,我只需输入Enter或Return。我怎么能做到这一点与硒类型命令,因为没有按钮点击?
我正在寻找一种快速的方法来键入进入或返回键在硒。
不幸的是,我试图测试的表单(不是我自己的代码,所以我不能修改)没有Submit按钮。当手动使用它时,我只需输入Enter或Return。我怎么能做到这一点与硒类型命令,因为没有按钮点击?
当前回答
Java / JavaScript:
你可能也可以用这种方式,在非母语的情况下:
public void triggerButtonOnEnterKeyInTextField(String textFieldId, String clickableButId)
{
((JavascriptExecutor) driver).executeScript(
" elementId = arguments[0];
buttonId = arguments[1];
document.getElementById(elementId)
.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode == 13) {
document.getElementById(buttonId).click();
}
});",
textFieldId,
clickableButId);
}
其他回答
import org.openqa.selenium.Keys
WebElement.sendKeys(Keys.RETURN);
import语句是针对Java的。对于其他语言来说,情况可能有所不同。例如,在Python中,它是from selenium.webdriver.common.keys import Keys
对于每个使用JavaScript / Node.js的人来说,这对我来说是有效的:
driver.findElement(By.xpath('xpath')).sendKeys('ENTER');
Actions action = new Actions(driver);
action.sendKeys(Keys.RETURN);
对于使用XPath的Selenium WebDriver(如果键是可见的):
driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.ENTER);
or,
driver.findElement(By.xpath("xpath of text field")).sendKeys(Keys.RETURN);
现在Selenium 2已经发布了,发送一个Enter键会更容易一些,因为你可以使用Selenium .webdriver.remote.webelement. webelement类的send_keys方法(这个示例代码在Python中,但在Java中存在相同的方法):
>>> from selenium import webdriver
>>> wd = webdriver.Firefox()
>>> wd.get("http://localhost/example/page")
>>> textbox = wd.find_element_by_css_selector("input")
>>> textbox.send_keys("Hello World\n")