我在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(“”))请帮助
答案 0 :(得分:0)
在您的代码中,您声明局部变量属于Page
类型,其中包含client.getPage("https://...");
的返回值
虽然向通用接口(在本例中为Page
)开发通常是一种好习惯,但通用接口不包含getElementById(...)
的方法。
尝试将第4行代码更改为以下内容:
HtmlPage page = client.getPage("https://...");
(我假设client.getPage("https://...");
返回的conent是MimeType text/html
)。
您还可以使用XmlPage
或XhtmlPage
,具体取决于您的MimeType。
如果您没有通过client.getPage("https://...");
检索这些内容,那么您不应该尝试在不具有此API的结构上调用getElementById
。
答案 1 :(得分:0)
我同意我的大学。上面的代码是正确的,请确保您启用了javascript,否则您将遇到HtmlUnit
的问题driver = new HtmlUnitDriver();
((HtmlUnitDriver) driver).setJavascriptEnabled(true);