时间:20200616
一直听大家说selenium的自动化,可是没有什么项目需要,也没有兴趣研究。最近正好做到web的项目需要每天自动初始化工作。借此练手,发现了不少迷惑的问题。
1. pycharm安装,目前版本3.141.0
2. 浏览器selenium ide 插件安装(推荐firfox)
注意点:chorme无法商店下载,就需要找对应的浏览器版本号匹配的selenium版本。
firfox如果安装官网最新,一般插件商店也会是最新的,直接安装,省心。
目前就是firfox录制保存(因为firfox最新版本self.driver.switch_to.frame(0)有问题)
chorme运行(只需要导出脚本修改下启动chorme即可)
2.1 chorme:ver 83.0.4103.97 + selenium id 3.17(录制回放处理很心累,无法下载插件,不推荐。推荐python运行)
- 一般国内不好访问商店,只能自己搜索下载,目前版本selenium id 3.17
-
录制过程不再赘述,执行过程总是会有一些小问题。主要就是执行速度过快,很多时候需要点击确认框的操作虽然执行了,其实是没有执行成功。比如需要点击的按钮弹出确认框,这种基本都没有点击到确认按钮(selenium认为点击过了)就直接下一条了,需要自己增加等待控件出现的的处理。
- 保存和加载脚本也很糟糕,保存项目需要自己加.side后缀名(后来装了firfox才知道项目后缀名是side)
2.2 firfox: ver 77.0.1(64bit)+ selenium id 3.17可以商店安装,比较方便,录制回放基本完美,省心,推荐!!
(被chorme折腾死了,安装这个试试,发现真心好用)
- 录制省心,回放放心,基本没啥要说的,保存和加载也没问题。
问题1:pycharm中python脚本:self.driver.switch_to.frame(数字/iframe名称)都不好用。chorme测试可以。暂时用chorme运行python。
3. webdriver安装
这个可以指定一个比如d:\webdirver目录,把chorme,firfox的都放进去,然后增加目录到path环境变量,这样python脚本就可以运行了。
为了节省大家时间,我放了对应程序下载
https://download.csdn.net/download/liangl923/12526686
4. pycharm,python 执行总结:
4.1 录制脚本后目前遇到的问题主要就是找不到控件,主要是以下问题:
- 根据后来不断研究发现其实是找不到控件,就需要切换frame,查看是否存在内嵌frame页面,就需要进行切换。
- 数字类型:(0,1,2,3之类的)self.driver.switch_to.frame(0) 一般都需要插入这句进行调整,可以查看当前网页源代码(页面上面右键选择查看即可)。搜索frame_id,如果有制定名称可以使用最好,没有的话,就和xpath一样,从头搜索看看从第几个出现,就是几。默认录制后保存一般都会有,漏掉的找不到控件的时候,就自己添加进行测试验证。
- 字符类型:比如下图的(“HushenMarket”) 设定为self.driver.switch_to.frame(“HushenMarket”) 或者使用xpath。 这个我还没用到。有用到再总结。
- 上面也没用再试试跳出frame,进入default content;
self.driver.switchTo().defaultContent();
查看源代码找frame
另外就是webdriver.py进行跟踪查找控件原始函数,看看得到的源代码是否可以搜索到控件关键词。没有的话肯定就是frame不对。需要按上面进行切换
def execute(self, driver_command, params=None):
4.2 其他问题总结:
参数不对。比如actions.move_to_element(element,0,0) 报错,录制的,查了webdriver.py发现有另一个函数actions.move_to_element_with_offset(element, 0, 0)。不知道这块是不是bug。自己改下。
actions.move_to_element(element,0,0).perform()
报错,需要改成下面的函数
actions.move_to_element_with_offset(element, 0, 0).perform()