1

我在 Java 中使用 HtmlUnit 来处理 DropDown Window (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 建议切换到 findElement(By.id(" ")) 请帮助

4

2 回答 2

0

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

尽管向泛型接口(在本例中PagegetElementById(...)

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

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

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

您也可以使用XmlPageor XhtmlPage,具体取决于您的 MimeType。

如果您通过 检索的不是这些client.getPage("https://...");,那么您不应该尝试调用getElementById一个没有此作为其 API 一部分的结构。

于 2013-02-11T03:59:24.073 回答
0

我同意我的大学。上面的代码是正确的,确保你启用了javascript,否则你会遇到HtmlUnit的问题

driver = new HtmlUnitDriver(); 
((HtmlUnitDriver) driver).setJavascriptEnabled(true);
于 2013-03-18T03:24:11.127 回答