【经验分享】Python实现UI自动化难点问题

问题描述:

1.执行自动化C:\Users\当前用户\AppData\Local\Temp 目录产生大量临时文件导致自动化执行异常。

应用场景:

  1. 所有Windows机器的默认配置。

原因:

  1. 编译执行Python脚本产生.pyc文件和.pyd文件。
  2. 通过Selenium下的Webdriver调用浏览器驱动程序(如chromedriver.exe)在没有正常退出的情况下产生的临时内存文件没有被释放。
  3. 操作系统本身使用产生的临时文件。

分析:

  1. Python语言特性+操作系统特性。

解决方案:

  1. 通过更改默认临时文件目录,然后创建浏览器进程前之前清除。
  2. 在F盘创建TEMP文件夹。
  3. 更改环境变量TEMP和TMP(包含用户变量和系统变量都要更改),值为F:\TEMP。
  4. 重启电脑。
  5. Python代码os.popen('RD %TEMP% /S/Q')。
  6. Python代码os.popen('MKDIR %TEMP%')。

问题描述:

  1. 《object》《/object》上传文件不能send_keys方法。

应用场景:

  1. 所有除了《input》上传文件的地方。

原因:

  1. 弹出本地路径选择框,相当于flash,Selenium类库本身暂不支持操作flash。

分析:

  1. 点击触发文件系统选择框的按钮后,由于焦点自动聚焦在文件路径输入框,这时模拟键盘输入事件,输入所需文件的路径即可。

解决方案:

  1. options.add_argument('--user-data-dir=C:/Users/kats/AppData/Local/Google/Chrome/User Data') 用于解决点击按钮后提示“允许使用flash”,原理是手动指定chrome配置文件,前提是chrome设置中已设置在运行flash之前不再询问。
  2. 利用PyUserInput中的pykeyboard模拟键盘输入事件,原理是keyboard会根据当前聚焦的元素位置输入,然后直接输入文件所在的路径+文件名。

结语:

跟大家推荐一个学习资料分享群:175317069,里面大牛已经为我们整理好了许多的学习资料,有自动化,接口,性能等等的学习资料!人生是一个逆水行舟的过程,不进则退,咱们一起加油吧!

你可能感兴趣的:(软件测试)