如何使用python硒上传带有角度分量的图像

时间:2019-05-16 10:19:40

标签: python angularjs selenium selenium-webdriver browser-automation

我的自动化脚本需要将图像上传到网页,但是我似乎无法使用常规的send_keys方法上传图像。我怀疑它与Angular组件有关,但是我不确定如何使用Selenium Webdriver访问它们。

我尝试了以下方法: Automate file upload using Selenium and ng-file-uploadHow 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")

1 个答案:

答案 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}")

让我知道您是否需要进一步的帮助。