我是硒的初学者,我正在做一个测试,但我不明白为什么它不起作用。 这是我的代码和以下错误。
import org.openqa.selenium.*;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class PruebaHTMLUnit {
public static void main(String[] args) {
WebDriver driver = new HtmlUnitDriver();
driver.get("http://www.google.com");
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Guru99");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
错误:
Build info: version: '3.5.2', revision: '10229a9', time: '2017-08-21T17:29:55.15Z' System info: host: 'MVILLEGAS764', ip: '169.254.106.219', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version:
' 1.8.0_144' 驱动程序信息:driver.version:HtmlUnitDriver 在org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByName(HtmlUnitDriver.java:1293) 在org.openqa.selenium.By $ ByName.findElement(By.java:303) 在org.openqa.selenium.htmlunit.HtmlUnitDriver $ 4.call(HtmlUnitDriver.java:1970) 在org.openqa.selenium.htmlunit.HtmlUnitDriver $ 4.call(HtmlUnitDriver.java:1) 在org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:1606) 在org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1966) 在org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:754) 在com.villegas.pruebas.PruebasRegresion.PruebaHTMLUnit.main(PruebaHTMLUnit.java:20)
答案 0 :(得分:0)
import org.openqa.selenium.*;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class test_Stackoverflow
{
public static void main(String[] args) {
WebDriver driver = new HtmlUnitDriver();
driver.get("https://www.google.com");
WebElement element = driver.findElement(By.xpath(".//*[@id='gs_htif0']"));
element.sendKeys("Guru99");
element.submit();
System.out.println("Page title is: " + driver.getTitle());
driver.quit();
}
}
HtmlUnitDriver是Selenium 2.53版的一部分。如果您使用的是Selenium 2.52或更早版本,则不需要下载和安装HtmlUnitDriver,它已经存在。
但是你仍然想用它从这里下载
https://github.com/SeleniumHQ/htmlunit-driver/releases
从2.53版本开始,您需要单独添加
试试这个:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-htmlunit-driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-htmlunit-driver</artifactId>
<version>2.52.0</version>
</dependency>
答案 1 :(得分:0)
请尝试这个希望它能起作用
import org.openqa.selenium.*;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
/**
* Created by W3E64 on 9/15/2017.
*/
public class testing_solution
{
public static void main(String[] args) {
java.util.logging.Logger.getLogger("com.gargoylesoftware.htmlunit").setLevel(java.util.logging.Level.OFF);
java.util.logging.Logger.getLogger("org.apache.http").setLevel(java.util.logging.Level.OFF);
HtmlUnitDriver unitDriver = new HtmlUnitDriver();
unitDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
unitDriver.get("http://google.com");
System.out.println("Title of the page is -> " + unitDriver.getTitle());
WebElement searchBox = unitDriver.findElement(By.name("q"))
searchBox.sendKeys("Selenium");
WebElement button = unitDriver.findElement(By.name("btnG"));
button.click();
System.out.println("Title of the page is -> " + unitDriver.getTitle());
}
}
答案 2 :(得分:0)
您可以点击Google搜索按钮,也可以在搜索框中输入Enter键,而不是使用Submit()方法。我试过运行上面的代码,它工作正常。我正在将Selenium 3.141.59与HtmlUnitDriver 2.36.0一起使用。 HtmlUnitDriver的行为随版本而变化。第二种方法简单得多,我个人更喜欢:
element.sendKeys(Keys.ENTER);
写这个而不是提交,它将正常工作。