【发布时间】:2019-06-24 17:58:38
【问题描述】:
使用 Java 和 Selenium,我正在尝试获取此链接:
所以根据我的发现,首先我做一个
Actions action = new Actions(driver);
scrollToElement(href);
action.contextClick(href).perform()
它应该会调出菜单。但后来我做到了
action.sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).sendKeys(Keys.ARROW_DOWN).build().perform();
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
}
action.sendKeys(Keys.RETURN).build().perform();
但是,这似乎在上下文菜单之外做了一个向下箭头。 这是一个 PDF 链接,因此它没有选择“将链接另存为”,而是点击上下文菜单外部的向下箭头,因此它关闭了上下文菜单,只需左键单击 pdf href。
所以我想知道在上下文框中以某种方式让它向下移动箭头。或者是否有“将链接另存为...”的xpath?我无法对其进行检查。我想,我可以试试
//*[contains(text(), 'Save link as"')]
但不确定这是否可行?有人遇到过这种情况吗?
【问题讨论】:
-
谢谢,但这并没有从上下文菜单中选择正确的东西
-
也许您可以按照@ANDY_VAR 共享的链接中的建议分配下载目录。然后,您可以尝试使用 CTRL+Click 而不是
ActionChains(driver).key_down(Keys.CONTROL).click(href).key_up(Keys.CONTROL).perform()等上下文菜单来尝试下载文件。(这是 python 命令,您应该将其更改为 Java 语法)。另一个有用的post。 -
我尝试了很多东西。 CTRL-Click 不起作用,但 ALT-ENTER 似乎起作用。但是,这可能只是在 Chrome 而不是 IE 上?
标签: java selenium contextmenu