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

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


当前回答

尝试使用XPath表达式搜索元素,然后,以下代码工作:

driver.findElement(By.xpath(".//*[@id='txtFilterContentUnit']")).sendKeys(Keys.ENTER);

其他回答

你可以试试:

selenium.keyPress("id="", "\\13");
selenium.keyPress("css=input.tagit-input.ui-autocomplete-input", "13");

要使用Selenium输入键,首先需要导入以下库:

import org.openqa.selenium.Keys

然后在想要输入密钥的地方添加此代码

WebElement.sendKeys(Keys.RETURN);

您可以根据需要将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);
}

您可以在输入文本的元素对象上调用submit()。

或者,你也可以将Enter键发送给它,如下面的Python代码片段所示:

from selenium.webdriver.common.keys import Keys
element.send_keys(Keys.ENTER) # 'element' is the WebElement object corresponding to the input field on the page