python如何做自动化测试???戳这里 ->>> selenium中webdriver类详解了解自动化测试


点击这里学习更多自动化测试知识 ->>>查看详情


什么是selenium

简单来说selenium是一个基于web端的UI自动化测试组件,模拟用户操作去控制浏览器自动运行,支持多语言目前主流就是python,Java,支持多浏览器chrome、ie、firefox等。

Selenium工作原理

1.运行自动化测试脚本,向web service发送一个http请求

2.浏览器驱动中的web service 会根据这个请求生成对应的js脚本,因为不同的浏览器,不同的浏览器要有不同的驱动

3.js脚本驱动浏览器,产生各种操作,并返回给web service

4.web service将结果通过http响应的形式返回给客户端

自动化测试环境搭建

Python+selenium+chrome百度一下配置安装,过程比较简单,注意chrome浏览器版本和对应chromedriver.exe驱动版本,版本对应情况可百度

打开浏览器

导入selenium下的webdriver类,调用打开浏览器方法,不同的浏览器需要不同的驱动否则会报错打不开


使用无界面模式打开浏览器,add_argument方法中加入--headless参数,添加到Chrome方法的options参数中

打开浏览器为手机模式

浏览器窗口最大化、设置窗口尺寸

maximize_window()方法当前打开窗口最大化

set_window_size(width,height)设置浏览器窗口尺寸

打开网页

1、调用webdriver下的get方法传入网页链接参数

同一个浏览器中打开两个网页需运行js脚本打开网页,调用webdriver中execute_script(),传入js脚本即可,默认在当前第一个网址页面,需切换浏览器窗口

切换浏览器窗口

Window_handles: 获取当前打开浏览器中所有窗口句柄,返回一个列表

Current_window_handle: 获取当前窗口句柄

Switch_to.window(): 切换到那个窗口句柄,传入窗口句柄字段

查找页面元素

1、webdriver类中包含多种方法去查找页面元素,id、xpath、name、text、css、class等,注意定位页面元素是路径必须是页面唯一的一个否则定位不到页面元素

页面:

使用所有方法定位百度输入框:一般常用的id、xpath、css定位比较准确,xpath、css可以手动书写路径表达式,其他的name、class、text、tag_name只能在页面是唯一的时候使用

关于find_element 和 find_elements的区别:前者是查找一个元素,后者是查找一组元素,返回一个列表

输入、清除、点击

找到页面输入框元素路径,send_keys()方法传字符串,输入字段

clear()方法清除输入框字段

找到页面按钮元素路径,掉用click()方法点击

接受、取消页面警告弹窗

switch_to.alert.accept()切换到弹窗使用accept()方法确认、dismiss()方法取消警告

获取页面文本、网页title、元素属性、页面url

查找页面文本对应路径,使用text方法获取

title方法直接获取页面title字段

获取元素属性,get_attribute()方法传入属性对应key

直接使用current_url方法获取当前页面url返回字符串

切换frame

有时候页面元素在frame框下,需要先切换到iframe中才能执行操作,否则直接定位页面元素,会报错找不到元素位置

Webdriver中switch_to.frame()方法切换

切换出frame: switch_to.default_content()

截图功能

get_screenshot_as_file(filename)传入图片保存位置

操作select下拉框选项

1、操作Select下拉选择框webdriver中有专用的方法去选中,需导入Select方法

from selenium.webdriver.support.select import Select

定位到select选择框位置,Select()传入元素获取的元素路径位置调用下面的选择方法去选中所要的值

select_by_index() :通过索引定位,以0开始

select_by_value() :通过value值定位

select_by_visible_text() :通过文本值定位

deselect_all():取消所有选项

deselect_by_index() :取消对应index选项

deselect_by_value():取消对应value选项

deselect_by_visible_text():取消对应文本选项

first_selected_option():返回第一个选项

all_selected_options():返回所有的选项

如何操作非Select下拉框呢?思路:先点击展开下拉列表,再获取父元素路径位置获取获取元素下所有标签,循环遍历列表获取文本进行对比,判断是否是要选择项

页面例子:

代码例子选中“最近一周”:

显示等待、隐式等待、强制等待

time.sleep():传入数值,强制等待几秒执行,导入time文件

implicitly_wait(10):隐式等待,是设置的全局等待,设置等待时间,是对页面中的所有元素设置加载时间,如果超出了设置时间的则抛出异常

WebDriverWait():显示等待,是针对于某个特定的元素设置的等待时间,在设置时间内,默认每隔一段时间检测一次当前页面某个元素是否存在,如果在规定的时间内找到了元素,则直接执行,即找到元素就执行相关操作,如果超过设置时间检测不到则抛出异常,默认抛出异常为:NoSuchElementException

10s是等待时间,1s是步长每隔几秒检测一次,默认0.5s

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,684评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,143评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,214评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,788评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,796评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,665评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,027评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,679评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,346评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,664评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,766评论 1 331
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,412评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,015评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,974评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,073评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,501评论 2 343

推荐阅读更多精彩内容