我的自动化脚本需要将图像上传到网页,但是我似乎无法使用常规的send_keys方法上传图像。我怀疑它与Angular组件有关,但是我不确定如何使用Selenium Webdriver访问它们。
我尝试了以下方法: Automate file upload using Selenium and ng-file-upload 和How to upload file using python+selenium?
这些似乎没有我正在寻找的解决方案。
<button class="md-raised choose-file md-button md-ink-ripple ng-empty ng-valid" type="button" ng-transclude="" ngf-select="" accept="image/*" ng-model="vm.uploader.original" aria-invalid="false">Choose file</button>
我没有任何错误,因为我可以成功找到元素,但是图像没有上传/发送。
file_input.send_keys("/location/of/image/profile_student.jpg")
答案 0 :(得分:1)
要处理Windows对象,可以使用autoit
,但是AutoItX3.dll
有Python绑定
您需要使用pip安装PyAutoIt
。
pip install -U pyautoit
您需要在python脚本上自动导入。
自动导入
首先单击chose file
按钮。
driver.find_element_by_xpath("//button[@type='button'][contains(.,'Choose file')]").click()
然后在relevant file path
filepath="C:\\filelocation\\filename.jpg"
autoit.win_wait_active("File Upload",5)
if autoit.win_exists("File Upload"):
autoit.control_send("File Upload","Edit1",filepath+"{ENTER}")
让我知道您是否需要进一步的帮助。