使用java中的Selenium自动将图像上载到instagram

使用java中的Selenium自动将图像上载到instagram,java,selenium,java-8,selenium-chromedriver,Java,Selenium,Java 8,Selenium Chromedriver,我正在使用Selenium,我需要将图像上传到instagram。但在windows文件选择器打开时,我无法让它搜索图像并自动上传 到目前为止,我的应用程序打开得很好,当它选择文件时,它不会自动执行 我尝试使用以下代码,但没有成功 driver.findElement(By.className(name)).send_keys('C:\\path-to-file\\file.jpg') 但它返回了第二张照片的值,也就是说,它从主文件夹生成一个文件选择器,而不是作为参数传递的文件选择器 我正

我正在使用Selenium,我需要将图像上传到instagram。但在windows文件选择器打开时,我无法让它搜索图像并自动上传

到目前为止,我的应用程序打开得很好,当它选择文件时,它不会自动执行

我尝试使用以下代码,但没有成功

driver.findElement(By.className(name)).send_keys('C:\\path-to-file\\file.jpg')
但它返回了第二张照片的值,也就是说,它从主文件夹生成一个文件选择器,而不是作为参数传递的文件选择器

我正在使用以下版本:

Java: 8
Selenium: 3.14
ChromeDriver: 76

普通浏览器不允许JavaScript访问本地磁盘。这是基本的安全。想象一下,如果你访问某个站点,它会读取你的本地密码文件或任何其他重要数据,而不询问你,会发生什么情况


如果你想上传文件,可以使用一些独立的应用程序,或者编写一个小的实用程序来实现。例如,尝试instapy,您可以在上找到它。这是一个品味的问题,其他人可以更喜欢其他工具。只需尝试几种工具,看看哪个更适合您的需要。

为文件资源管理器打开的窗口不是浏览器的一部分,因此无法通过selenium与之交互。解决这一问题的方法是一个名为。关于如何使用AutoIt上传文件的指南,请使用以下链接:

这是一个使用selenium的java应用程序,我需要的是,在这一点上,我会自动查找图像,而javascriptYou自动化浏览器与此无关。像Chrome和FF这样的普通浏览器不允许不受控制地访问磁盘——不管浏览器是如何控制的:通过页面中的JavaScript还是通过Web驱动程序。我自动查找图像实际上意味着我的代码强制浏览器查找图像。浏览器保护用户不受任何试图访问本地文件而不询问用户的代码的影响。为什么不想用Java或Python编写一个HTTP客户端来上传这些图像呢?这不是为我准备的,而是为正在完成的项目准备的。但是你推荐什么工具来处理这个问题呢?我已经扩展了答案。不确定你所说的搜索是什么意思。。。但是您可以将路径传递到系统剪贴板,然后使用Java Robot将其粘贴到字段中。send keys方法假定接口允许您在其中键入。。。事实并非总是如此。。。如果这样做有效,那么首先不要打开浏览,只需提交即可。