有没有办法用Selenium在线上传.pdf文件?

时间:2019-12-12 05:06:57

标签: python selenium

所以我在这里使用这段代码。

Manuscript = browser.find_element_by_id('data-print-book-publisher-interior-file-upload-browse-button').send_keys("/Users/Name/Downloads/FishingLogCombined.pdf")
Manuscript.submit()

我得到的只是一个打开的对话框。文件路径选项中未粘贴任何内容。只是打开我的文件的对话框。有什么我可以做的吗?我尝试了许多不同的选项,但没有一个起作用。

2 个答案:

答案 0 :(得分:0)

有两种方法可以解决此问题。一种是使用sendKeys

driver.find_element_by_id('element-id').sendkeys("path-to-the-file");

如果这不起作用,则必须使用AutoIt脚本来完成此操作。

答案 1 :(得分:0)

这可以使用Selenium中的Robot界面来完成。 您将必须创建实例import os this_dir = os.path.abspath(os.path.dirname(__file__)) my_dll = ctypes.cdll.LoadLibrary(os.path.join(this_dir, 'bar.dll')) 并将路径作为参数StringSelection

传递

然后将其复制到String text = "sampledoc.txt"; StringSelection stringSelection = new StringSelection(text);接口,并将路径设置为setcontent方法。 Clipboard 现在我们只需要使用硒中的Toolkit.getDefaultToolkit().getSystemClipboard().setContents(stringSelection ,null);类来进行键盘按键交互。 请按照下面提到的关键事件进行操作,您的上传应该会成功。

Robot

References for Robot class from stackexchange

References for Robot class from learn automation