您好,请告诉我如何使用HTMLUNIT DRIVER INSTEAD OF FIREFOX DRIVER运行此示例程序。 下面的代码已成功运行firefox驱动程序,但没有成功运行htmlunit驱动程序给出
org.openqa.selenium.NoSuchElementException:无法使用.//*[contains(concat(' ',normalize-space(@class),' '),' gssb_e ')]
- EXCEPTION找到节点。
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class GoogleSuggest
{
public static void main(String[] args) throws Exception
{
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com/webhp?complete=1&hl=en");
WebElement query = driver.findElement(By.name("q"));
query.sendKeys("Cheese");
long end = System.currentTimeMillis() + 50000;
while (System.currentTimeMillis() < end)
{
WebElement resultsDiv = driver.findElement(By.className("gssb_e"));
if (resultsDiv.isDisplayed())
{
break;
}
}
List<WebElement> allSuggestions =
driver.findElements(By.xpath("//td[@class='gssb_a gbqfsf']"));
for (WebElement suggestion : allSuggestions)
{
System.out.println(suggestion.getText());
}
}
}
请任何人告诉我如何使用HTMLUNIT驱动程序n IMA非常只是初学者并解释原因甚至我会很高兴如果任何人发布相同的代码操作与HTMLUNIT驱动程序,也请告诉我如何克服使用HTMLUNIT驱动程序时的DEFAULTCSSERROR,这对firefox驱动程序来说也不是问题。
我的主要目的是在运行上述过程的背后,不用调用浏览器使所有东西都不可见。
任何人请在这方面帮助我。
答案 0 :(得分:1)
在HtmlUnit Driver中,它只会查找小写标签和属性。
示例: HTML
input type =“text”name =“example”&gt;
INPUT type =“text”name =“other”&gt;
// webdriver code
driver.findElements(By.xpath( “//输入”));
对于HtlmUNit案例:它只找到一个元素(name =“example”)
for firefoxDriver case =它会找到2个元素
希望你能调试代码
答案 1 :(得分:0)
HtmlUnit驱动程序&lt;&gt; FirefoxDriver 强>
"If you test javascript using HtmlUnit the results
may differ significantly from those browsers"
看看here