问题描述:
1. 执行自动化 C:\Users \ 当前用户 \ AppData\Local\Temp 目录产生大量临时文件导致自动化执行异常.
应用场景:
所有 Windows 机器的默认配置.
原因:
编译执行 Python 脚本产生. pyc 文件和. pyd 文件.
通过 Selenium 下的 webdriver 调用浏览器驱动程序 (如 chromedriver.exe) 在没有正常退出的情况下产生的临时内存文件没有被释放.
操作系统本身使用产生的临时文件.
分析:
Python 语言特性 + 操作系统特性.
解决方案:
通过更改默认临时文件目录, 然后创建浏览器进程前之前清除.
在 F 盘创建 TEMP 文件夹.
更改环境变量 TEMP 和 TMP(包含用户变量和系统变量都要更改), 值为 F:\TEMP.
重启电脑.
Python 代码 os.popen('RD %TEMP% /S/Q').
Python 代码 os.popen('MKDIR %TEMP%').
问题描述:
《object》《/object》上传文件不能 send_keys 方法.
应用场景:
所有除了《input》上传文件的地方.
原因:
弹出本地路径选择框, 相当于 flash,Selenium 类库本身暂不支持操作 flash.
分析:
点击触发文件系统选择框的按钮后, 由于焦点自动聚焦在文件路径输入框, 这时模拟键盘输入事件, 输入所需文件的路径即可.
解决方案:
options.add_argument('--user-data-dir=C:/Users/kats/AppData/Local/Google/Chrome/User Data') 用于解决点击按钮后提示 "允许使用 flash", 原理是手动指定 Chrome 配置文件, 前提是 Chrome 设置中已设置在运行 flash 之前不再询问.
利用 PyUserInput 中的 pykeyboard 模拟键盘输入事件, 原理是 keyboard 会根据当前聚焦的元素位置输入, 然后直接输入文件所在的路径 + 文件名.
来源: http://www.jianshu.com/p/7c56bf7e4ef4