Java的。 HtmlUnitDriver。下拉窗口问题

时间:2013-02-11 00:34:56

标签: java htmlunit

我在Java中使用HtmlUnit来处理DropDown窗口(Java)。

我尝试用户skaffman建议:

WebDriver driver = new HtmlUnitDriver();
driver.get("https://...");
...................... 
WebClient client = new Webclient();
Page page = client.getPage("https://...");
HtmlSelect select = (HtmlSelect) page.getElementById(mySelectId);
HtmlOption option = select.getOptionByValue(desiredOptionValue);
select.setSelectedAttribute(option, true);

它无法识别:getElementById。 Eclipse建议swith to findElement(By.id(“”))请帮助

2 个答案:

答案 0 :(得分:0)

在您的代码中,您声明局部变量属于Page类型,其中包含client.getPage("https://...");的返回值

虽然向通用接口(在本例中为Page)开发通常是一种好习惯,但通用接口不包含getElementById(...)的方法。

尝试将第4行代码更改为以下内容:

HtmlPage page = client.getPage("https://...");

(我假设client.getPage("https://...");返回的conent是MimeType text/html)。

您还可以使用XmlPageXhtmlPage,具体取决于您的MimeType。

如果您没有通过client.getPage("https://...");检索这些内容,那么您不应该尝试在不具有此API的结构上调用getElementById

答案 1 :(得分:0)

我同意我的大学。上面的代码是正确的,请确保您启用了javascript,否则您将遇到HtmlUnit

的问题
driver = new HtmlUnitDriver(); 
((HtmlUnitDriver) driver).setJavascriptEnabled(true);