如何解决org.openqa.selenium.NoSuchElementException

d51*_*111 4 java selenium

我正在尝试运行此程序:

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());
 }
}
Run Code Online (Sandbox Code Playgroud)

我得到以下例外:

异常在线程 "主要" org.openqa.selenium.NoSuchElementException:无法找到与name元素:●系统信息:os.name:'Linux的,os.arch: 'I386',os.version:"2.6.27- 7-通用",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)

请帮我解决一下.

小智 5

该页面上没有name ="q"的元素,因此,NoSuchElementException.您从谷歌获取示例并更改了它所访问的网站,但它仍然在页面上寻找谷歌搜索框.