其他分享
首页 > 其他分享> > 自动化

自动化

作者:互联网

1.导入模块总结

from selenium import webdriver

from time import sleep

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.action_chains import ActionChains

from selenium.webdriver.support.select import Select

from selenium.webdriver.support.ui import WebDriverWait#显示等待

import unittest

import HTMLTestRunner

 

2.切换总结

1.捕捉弹框并点击确定: 定义.switch_to.aleart.accept()

                     定义.switch_to.aleart.dismiss()

                     定义.switch_to.aleart.text

                     定义.switch_to.aleart.send_keys('要输入的内容')

2.切换框架:   定义.switch_to.default.content

              定义.switch_to.frame('框架')

3.切换句柄:    定义.switch_to.window(切换的句柄)

               定义.current_window.handle

               定义.window.handle

3.切换的方式

1.弹窗不需要专门去切换

2.框架,需要回到默认框架再去想去的框架,并不能直接前往

3.句柄,需要获得所有句柄,获得所有句柄后用变量去承接这些句柄,一般后打开的句柄会相对的在列表的后面,

  如果是两个句柄的切换可直接获得当前的句柄后用if语句去切换

4.元素定位的方式

1.定义.find_element(定位方式,“值”)例:定义.find_element(id,"wd")

2..定义.find_element('元素的id')

3..定义.find_element(link_text,'当前标签是a标签时可用')

4.定义.find_element(partition_link_text,'当前标签是a标签时可用')

5.定义.find_element(tag_name,'元素的标签')一般用于复选框

6.定义.find_element(xpath,'元素的路径')

7.定义.find_element(class_name,'元素的class的值')

8.定义.find_element(css_selector,'元素的名字')#用法和xpath一样

9.如果一个页面有多个同名的元素,则使用父级定位的方式,进行元素的定位

browser.find_element(id,‘父级相同的元素值’).find_element(link_text,"子级元素的内容").click()

5.点击方式

1.click()#纯点击

2.submit()#提交并点击

6.检查点

1.定义.find_element(id,'id的值').get_attribute('元素的某个变量')#获得id这个变量的某些值

2.定义.find_element(id,'id的值').size                          # 获得长宽高等数值以列表展示

3.定义.find_element(class_name,'class的值').text                #获得文本信息

4.定义.current_url                                                  #获得地址

5.定义.title                                                        #获得跳转页面的抬头

6.WebDriverWait(定义,如果没找到的时间,多久找一次).until(lambda y:y.find_element_by_id("要找的元素的值"))

                                                                    #用显示等待也可做检查点

7.鼠标操作

1.context_click(定位的元素名)  #右击

2.double_click(定位的元素名)  #双击

3.drag_and_drop(A元素名,B元素名)  #将A元素拖拽到B元素上,前提是A元素本身是可以拖拽的

4.move_to_element(定位的元素名)    #鼠标悬停

5.click_and_hold('定位的元素名')

6.click()

          鼠标操作的使用方式和平常的有点不一样要先:

          ActionChains(定义).鼠标操作.perform()

8.键盘操作

1.Keys.ESCAPE  #键盘的esc

2.Keys.ENTER   #回车键

3.Keys.SPACE   #空格键

4.Keys.CONTROL  #ctrl键

5.Keys.BACK_SPACE  #回退键/删除键

6.Keys.ALT       #alt键

7.Keys.CANCEL     #取消键跟esc很相似

8.Keys.DELETE     #删除键

9.Keys.TAB         #tab键

           键盘操作的方式是在定位元素后用send_keys(键盘操作)

           如:bs.find_element_by_name('wd').send_keys(Keys.BACK_SPACE)

           这个意思是定位‘百度一下’这个按钮,然后回车

9.显示等待

1.WebDriverWait(定义,如果没找到的时间,多久找一次)                 #如仅需做一个显示等待只需执行第一行代码

2.  .until(lambda y:y.find_element_by_id("要找的元素的值"))       #如需做检查点需要一二行连在一起

 

      显示等待需要导入模块

 

 

10.隐式等待

1.定义.imlicitly_wait(最多等待的时间)   #默认会在每一行代码执行单位是秒,不需导入模块,

                                        #会等代码找到元素,直到等待的时间到了为止

 

 

11.异常捕捉

try:

      可能会不正常的代码

except Exception:

  发生错误后的代码

  Exception  捕捉所有异常

      raise nameError   #有raise抛出异常后except后面的代码不会执行要想执行需将raise去掉

                         #只有try中报错eccept才会执行

finally:

      不论报不报错都会执行的代码

12.架构的方法

1.先写出用例

2.将用例的公共模块做成方法

3.将原用例的的内容替换为方法

4.把原用例模块化

4.做一个执行所有用例的all_test

5.用调用用例的作为模块导入all_test

7.导入新报告的模块

8.将报告模块优化

9.将用例放入容器中

10.公共模块__init__里导入原用例作为模块

10.新建文件classname,里面导入公共模块的所有模块名

10.做一个方法

11.在classname里面做一个做一个方法,方法里面列表list里面放原用例的(用例名.类名)有多个用例用逗号隔开

12.列表=classname文件名的类名

13.用for循环去便利这个列表

 

 

13.页面滚动

1.js="var q=document.docunmetElement.scrollTop=位置"           #置顶,位置一般是个像素,1000

  DL.execute_script(js)                                       #本来DL赋值中的引号会被当做字符串,但是使用执行脚本的函数,将会把引号中的内容进行执行

2.target = 定义.find_element_by_link_text('关注管理')

定义.execute_script("arguments[0].scrollIntoView();", target)   #把页面拖到制定元素的位置,推荐使用

 

 

#如果想要将滚动条拉动到页面的一般,则必须找开发了解当前滚动条的像素大小

#一般情况下,拉到底部,一般写个10000就够了

 

 

14.好用的小命令

1.定义.close  #关闭当前窗口

2.scroll 滚动  Top顶部

3.execute 执行

4.script 脚本

5定义.get_screenshot_as_file('图片保存的路径')  截图,快照

 

标签:定义,Keys,句柄,元素,element,自动化,find
来源: https://www.cnblogs.com/xieweiwen/p/16450956.html