通过Selenium python上传文件

时间:2019-06-26 00:08:50

标签: python python-3.x selenium

我一直在尝试使用python通过硒上传文件。我一直在遵循使用指南:

driver.find_element_by_id("IdOfInputTypeFile").send_keys(os.getcwd()+"/image.png")

来自此站点:http://allselenium.info/file-upload-using-python-selenium-webdriver/

但是,这仅在手动单击上载,弹出opload文件并关闭它之后才起作用。如果我先运行命令,它什么也没做。

但是,我无法关闭Selenium中的弹出窗口。因此,这不是自动化的可行方法。

1 个答案:

答案 0 :(得分:0)

如果您要用Java或python上传文件,这时会打开窗口弹出菜单,则可以安全使用Autoit,始终使用Java或python。 AutoIT是上传文件的最佳选择。

您只需要通过cmd屏幕安装AutoIt https://pypi.python.org/pypi/PyAutoIt/0.3或仅“ pip install -U pyautoit”

在脚本页面上输入“ import autoit”

在脚本中弹出文件对话框之前,键入以下内容:

  1. autoit.win_active(“打开”)
  2. autoit.control_send(“打开”,“ Edit1”,r“ C:\ Users \ uu \ Desktop \ Filename.txt”)
  3. autoit.control_send(“打开”,“ Edit1”,“ {ENTER}”)

您可以使用代替control_send的方式

autoit.control_set_text("Open","Edit1",r"C:\Users\uu\Desktop\Filename.txt")
  1. 编译它以获取一个.exe文件(Filename.exe)
  2. 现在从python调用.exe文件,就像

将其导入您的代码中

import os
import os.system('C:\images\Filename.exe') #path of the .exe file

希望它对您有帮助:)