我正在尝试运行此程序:

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class HtmlDriver {
  public static void main(String[] args) {
     // Create a new instance of the html unit driver
     // Notice that the remainder of the code relies on the interface,
     // not the implementation.
  WebDriver driver = new HtmlUnitDriver();

      // And now use this to visit Google
      driver.get("http://www.stumbleupon.com/home/");

      // Find the text input element by its name
     WebElement element = driver.findElement(By.name("q"));

      // Enter something to search for
      element.sendKeys("Cheese!");

      // Now submit the form. WebDriver will find the form for us from the element
      element.submit();

      // Check the title of the page
      System.out.println("Page title is: " + driver.getPageSource());
 }
}

我收到以下异常:

线程“主”中的异常org.openqa.selenium.NoSuchElementException:无法找到名称为q的元素
系统信息:操作系统名称:'Linux',操作系统名称:'i386',操作系统版本:'2.6.27-7-generic',java.version:'1.6.0_12'
驱动程序信息:driver.version:HtmlDriver
在org.openqa.selenium.htmlunit.HtmlUnitDriver.findElementByName(HtmlUnitDriver.java:651)
在org.openqa.selenium.By $ 4.findElement(By.java:148)
在org.openqa.selenium.htmlunit.HtmlUnitDriver $ 4.call(HtmlUnitDriver.java:1133)
在org.openqa.selenium.htmlunit.HtmlUnitDriver $ 4.call(HtmlUnitDriver.java:1)
在org.openqa.selenium.htmlunit.HtmlUnitDriver.implicitlyWaitFor(HtmlUnitDriver.java:869)
在org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:1130)
在org.openqa.selenium.htmlunit.HtmlUnitDriver.findElement(HtmlUnitDriver.java:330)
在com.webdrivertest.HtmlDriver.main(HtmlDriver.java:20)

请帮我解决。

最佳答案

该页面上没有名称为“q”的元素,因此为NoSuchElementException。您以google为例,更改了网站,但它仍在页面上寻找google搜索框。

09-08 06:20