selenium使用总结大全-2020

时间: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()

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值