问题:在豆瓣发帖的时候,涉及到要上传图片,点击图片,会弹出一个windows弹窗,这个使用selenium是模拟不了的,此时要使用AutoIt软件。(其实另一中上传图片的方式是<input>标签,可以用另一种方式,详情可参考来自https://www.jb51.net/article/121889.htm。)
下边是安装和配置AutoIt的方法:Selenium上传图片(python+Selenium+AutoIT)_UncleDong的博客-CSDN博客(这里千万要注意保存exe的时候用Compile Script to.exe工具,不要用原始的)
其中文件路径可以在python中定义,并使用:(一定点下图定位按钮的工具右边选项卡control,Edit1是在这个选项卡中)
【1】.这个是不用在python中自主定位,直接写路径的AutoIt中的代码(selenium中处理Windows弹框时AutoIt脚本编写 - 灰信网(软件开发博客聚合)这个可以参考)
ControlFocus("打开", "","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("打开", "", "Edit1","C:\Users\Administrator\Desktop\untitled.png")
Sleep(2000)
ControlClick("打开", "","Button1");
python中的代码如下:
import os
os.system(r"G:\scrapy实例\seleniumDemo\testsciTi.exe")【2】在python中定义路径,在AutoIt中设置变量(可以批量设置,详情参考selenium+python自动化78-autoit参数化与批量上传 - 上海-悠悠 - 博客园)
在autoit中的代码:
ControlFocus("打开", "","Edit1")
WinWait("[CLASS:#32770]","",10)
ControlSetText("打开", "", "Edit1",$CmdLine[1])
Sleep(2000)
ControlClick("打开", "","Button1");
在python中的代码:
file_path = r"C:\Users\Administrator\Desktop\untitled.png"
os.system(r"G:\scrapy实例\seleniumDemo\testsciTi.exe %s" % file_path)版权声明:本文为fan13938409755原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。