3 回答
TA贡献1836条经验 获得超5个赞
如果您的目的是从网页上下载图片,您可以直接下载带有 url 的图片,而不是右键单击。
WebElement elementq =driver.findElement(By.xpath("//a[contains(text(),'fedev.docs-gmail.JPG')][@class]"));
String imageLink = logo.getAttribute("href");
String fileName = url.getFile();
URL imageURL = new URL(imageLink);
InputStream in = new BufferedInputStream(imageURL.openStream());
OutputStream out = new BufferedOutputStream(new FileOutputStream(fileName));
for ( int i; (i = in.read()) != -1; ) {
out.write(i);
}
in.close();
out.close();
TA贡献1864条经验 获得超6个赞
尝试使用Robot对象解决它:
Actions builderq = new Actions(driver);
builderq.contextClick(elementq);
builderq.build().perform();
Robot robot = new Robot();
int REPEATS_OF_VK_DOWN_INPUT = 3;
for (int i = 0; i < REPEATS_OF_VK_DOWN_INPUT; i++) {
robot.keyPress(KeyEvent.VK_DOWN);
robot.keyRelease(KeyEvent.VK_DOWN);
Thread.sleep(500);
}
robot.keyPress(KeyEvent.VK_ENTER);
robot.keyRelease(KeyEvent.VK_ENTER);
Thread.sleep(1000);
TA贡献1877条经验 获得超1个赞
评论太大了,所以作为答案发布。
根据您想要的问题contextClick(element)
并Save link as
通过操作进行选择。
值得一提的是,如果上下文菜单列表已经实现为原生上下文菜单列表,我们可以很容易地解决这个问题。但根据您共享的 HTML,似乎context-menu-list是Chrome 浏览器的 原生 context-menu-list。
contextClick(element)
进入渲染器进程。这是ChromeDriver模拟按键方式的限制。
可以称为ChromeDriver 架构的错误或限制,我们必须等到问题得到解决。
添加回答
举报