我正在尝试使用Java中的Selenium的HtmlUnitDriver和WebElement类来点击Google趋势上的“下载为CSV”按钮。
我遇到的问题是,在您单击其他设置菜单按钮之前,该按钮被隐藏(不显示),但我无法使用WebElement单击该设置菜单按钮。
这是我的代码:
/**
* @args String, the term to search on Google Trends
*/
public static void main(String[] args)
{
//instantiate an HtmlUnitDriver
HtmlUnitDriver hud = new HtmlUnitDriver();
//navigate to the 90-day Google Trends page of the input term in args
hud.get("https://www.google.com/trends/explore#q=" + args[0] + "&date=today%203-m&cmpt=q&tz=Etc%2FGMT%2B8");
//set element to the first button to press
WebElement element = hud.findElement(By.id("settings-menu-button"));
//click the element
element.click();
}
我得到的错误是:org.openqa.selenium.ElementNotVisibleException:您只能与可见元素进行交互
但设置菜单按钮是否可见?
这是我第一次制作这样的程序并使用这个库,所以感谢您的帮助。我还在学习。
答案 0 :(得分:0)
你能试试吗
public static void main(String[] args)
{
//instantiate an HtmlUnitDriver
HtmlUnitDriver hud = new HtmlUnitDriver();
wait = new WebDriverWait(hud , 120);
//navigate to the 90-day Google Trends page of the input term in args
hud.get("https://www.google.com/trends/explore#q=" + args[0] + "&date=today%203-m&cmpt=q&tz=Etc%2FGMT%2B8");
wait.until(ExpectedConditions.presenceOfElementLocated(By.id("settings-menu-button")).click();
}
答案 1 :(得分:0)
切换到真实浏览器(例如Firefox,Chrome):
ChromeDriver hud = new ChromeDriver();
原因:
所有流行的浏览器都没有使用过的javascript引擎 HtmlUnit(Rhino)。如果你使用HtmlUnit测试javascript的结果 可能与那些浏览器有很大不同。
通过模拟DOM提供JavaScript支持的无头浏览器 一般使用更高级/模糊的网站存在问题 浏览器功能,或具有可视依赖性的功能 (例如通过CSS职位等)