我正在寻找一种快速的方法来键入进入或返回键在硒。

不幸的是,我试图测试的表单(不是我自己的代码,所以我不能修改)没有Submit按钮。当手动使用它时,我只需输入Enter或Return。我怎么能做到这一点与硒类型命令,因为没有按钮点击?


当前回答

我只是想指出,我的Cucumber测试需要这个,并发现如果您想模拟按enter/return键,则需要发送:return值,而不是:enter值(请参阅此处描述的值)。

其他回答

我必须在文本中间输入回车键。于是我通过下面的文本发送键函数来实现1\n2\n3:

1\N{U+E007}2\N{U+E007}3
selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");

有以下几种按键方式- c#:

Driver.FindElement(By.Id("Value")).SendKeys(Keys.Return);

OR

OpenQA.Selenium.Interactions.Actions action = new OpenQA.Selenium.Interactions.Actions(Driver);
action.SendKeys(OpenQA.Selenium.Keys.Escape);

OR

IWebElement body = GlobalDriver.FindElement(By.TagName("body"));
body.SendKeys(Keys.Escape);

现在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")

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