我正在尝试运行此程序:
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搜索框。