Web自动化框架-selenium

一、八种单数:(就够用了)

      id

     class

    tag_name

    linktext

   包含定位

    xpath

    css

     name

二、八种复数(暂时用不到)

三、2个底层(暂时用不到)

四、三种切换

      tab(浏览器产生了多个页签)

         switch_to.window(handles[-1])      #取我们产生的最新的

         switch_to.window(handles[0] )      #取第一个

          close                                    #如果你切换tab,时刻要close,用完一个标签,就要关掉

       alert

         确定

         取消

      iframe

          当iframe没有id或name时,先定位到iframe这个标签

                    xxx.iframe(element)

          当iframe有name和id时

                    iframe(‘name‘)

                    iframe(‘id‘)

          iframe是将一对HTML标签嵌套另一对HTML标签,所以要求一层一层的切换,如果我切进去想外出,得一层一层往外出

          default:默认到最外层

      鼠标悬浮操作:

            原理:每次通过一个匿名函数向一个数组中 添加一个未执行的函数,这个函数就是自己的操作,当你调这个perform,才统一去将case里所有运行

            .perform()

      js操作

             dom语句,就一种,获取这个元素,将它的style属性中的display属性干掉,让他展示出来,我们再去操作

     等待

              time   调试时用

              隐式    不考虑

              显式   必须每次都用       

              显式用于网络超时不稳定的风险,这个显式就能规避

                步长  0.5s

                超时时间10s         10s里有20个0.5  每隔0.5s就问一次,相当于问20次,没有timeout的exception

                如果写 case,遇到一个定位不到元素,排查:

                           1.分析HTML,看清楚哪些是我们要用的唯一属性

                           2.看清父子级关系

                           3.有没有浏览器的tab要切换

                           4.排查有没有iframe

                           5.排查这个元素在代码调用打开时,页面是否渲染了

                           6.排查你定位的元素是否有display属性 ,有的话,就被隐藏了,看不到

                           7.需要单独的把这个case拿出来,不用显示等待,用time调试方式,确保原始是可以点击

                           8.看你的操作是否需要连贯操作

                           9.是不是我的定位方式写错了,没写错,按照1-8排查完还有问题,问一下开发,是否有特殊处理,如:js动态处理

 

                                 

 

                

               

              

      封装pyse

      

             

 

Web自动化框架-selenium

上一篇:css 你真的了解padding吗?


下一篇:electron 关于jquery不可以用