ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自动化

2022-07-06 15:31:58  阅读:189  来源: 互联网

标签:定义 Keys 句柄 元素 element 自动化 find


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有