如何在使用Selenium WebDriver和Java代码在Eclipse中输入搜索字段后按下“Enter”键

7
我正在使用WebDriver和TestNG在Eclipse中编写测试用例。 WebDriver的版本是2.39。
在测试用例中,我试图打开浏览器,输入网站地址,等待其加载后,查找搜索字段,使用来自Excel表格的DataDriven类型输入文本。
一旦第一个数据被输入,我想点击键盘上的“Return”键并等待其加载完成,然后清除并输入电子表格中的下一个测试。
我已经成功地输入文本并清除了它,但是不确定如何编写代码以按“return键”或Enter键,请指教。
非常抱歉,我在搜索中找不到相关内容。
谢谢!

5个回答

9
您可以通过在输入的文本中添加 "\n" 来模拟按下 Enter 键。例如:textField.sendKeys("在字段中键入的文本" + "\n")
更新:顺便说一句,这个问题已经在这里被问过了:在 Selenium 中键入 Enter/Return

发送“\n”似乎并不是绝对可靠的,而在这种情况下,Keys.Enter似乎能够完成工作。 - jeremy_rutman
这取决于webdriver版本、ja框架以及特定文本元素的实现。因此,这只是许多可能选项中的一种。 - olyv

4

您可以使用

driver.findElement(By.id("IDValue")).sendKeys(Keys.ENTER);

4
使用此代码片段,您可以跳过使用回车键。
driver.get("https://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("your text");
element.submit();

3

以下是我用作向字段输入多个值的示例:


driver.findElement(By.xpath("(//INPUT[@class='attr-new ng-pristine ng-untouched ng-valid ng-scope placeholder'])[2]")).sendKeys("Linoleum" + Keys.ENTER + "Metal" + Keys.ENTER + "Electrical" + Keys.ENTER + "Lumber" + Keys.ENTER + "Fiberglass" + Keys.ENTER + "Masonry" + Keys.ENTER + "Paint" + Keys.ENTER + "Millwork" + Keys.ENTER + "Wood" + Keys.ENTER + "Pick Ups" + Keys.ENTER); 请注意,保留了HTML标记。

-1

我之前遇到过类似的问题。在Selenium IDE中click()事件可以正常工作,但在jUnit测试中却不行。解决方法是使用submit()事件,这个方法可以正常工作。(但只适用于jUnit ;) )让我们试一下吧!


driver.findElement(By.cssSelector("li.search > #Form_getSearchForm > fieldset > #Terms > div.middleColumn > #Form_getSearchForm_Terms")).sendKeys(s.getCell(0,i).getContents() + "\n"); 在"\n"处出现了语法错误。 - user2691854
嗯,我认为By.cssSelector()不是最好的选择。它使用了稍微复杂一些的目标定位方式... - mig8

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接