版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
LOGOselenium2python自动化测试实战---虫师LOGOselenium2python自动化测试实战1selenium2-python自动化测试实战课件2前言:为什么要做自动化测试?A、节省手工测试的人才和成本B、有助于提升测试团队的技术力量C、能够生成直观的图形化报表D、我不知道,领导要求做的前言:为什么要做自动化测试?3前言:分层的自动化测试前言:分层的自动化测试4前言:什么样的产品适合做自动化测试?功能成熟(需求变动较小)产品更新维护周期长项目进度不太大比较频繁的回归测试软件开发比较规范,具有可测试性可以脚本具有可复用性前言:什么样的产品适合做自动化测试?5本课程学习重点:selenium技术:
元素定位的几种方法
WebDriverAPI,seleniumIDE,seleniumgridpython技术:
函数、类、方法;读写文件,unitest单元测试框架,HTMLTestRunner.py,发邮件模块,多线程技术等。本课程学习重点:6seleniumselenium的特点:开源,免费多浏览器支持:firefox、chrome、IE多平台支持:linux、windows、MAC多语言支持:java、python、ruby、php、C#、对web页面有良好的支持简单(API简单)、灵活(用开发语言驱动)支持分布式测试用例执行seleniumselenium的特点:7selenium家谱selenium1.0:selenium2.0=selenium1.0+WebDriverselenium家谱selenium1.0:sele8selenium2-python自动化测试实战课件9环境搭建:window安装:第一步、安装python第二步、安装setuptoolsC:\setuptools-1.3>pythonsetup.pyinstall第三步、安装pipC:\pip-1.4.1>pythonsetup.pyinstall第四步、安装seleniumC:\Python27\Scripts>pipinstall-Uselenium环境变量:
变量名:PATH变量值:;C:\Python27
环境搭建:window安装:变量名:PATH10环境搭建:简易安装(ActivePython):ActivePython包含了一个完整的Python内核,并附加了一些Python的Windows扩展第一步、下载安装ActivePython第二步、安装seleniumC:\Python27\Scripts>pipinstall-Uselenium环境搭建:简易安装(ActivePython):11环境搭建:linux安装(ubuntu):第一步、安装:setuptoolsroot@fnngj-H24X:~#apt-getinstallpython-setuptools第二步、安装piproot@fnngj-H24X:../pip-1.4.1#pythonsetup.pyinstall第三步、安装seleniumroot@fnngj-H24X:../pip-1.4.1#pipinstall-Uselenium环境搭建:linux安装(ubuntu):12第一个自动化脚本:百度搜索:第一个自动化脚本:百度搜索:13selenium2-python自动化测试实战课件14元素的定位:WebDriver提供的八种定位方法:find_element_by_id()find_element_by_name()find_element_by_class_name()find_element_by_tag_name()find_element_by_link_text()find_element_by_partial_link_text()find_element_by_xpath()find_element_by_css_selector()元素的定位:WebDriver提供的八种定位方法:15元素的定位:id\name\classname\tagname:百度搜索框前端代码(通过firebug查看)<input
id="kw1"class="s_ipt"type="text"maxlength="100"name="wd"autocomplete="off">find_element_by_id(‘kw1’)find_element_by_name(‘wd’)find_element_by_class_name(‘s_ipt’)find_element_by_tag_name(‘input’)注:页面上的元素tagname相同的几率很高元素的定位:id\name\classname\tagn16元素的定位:link\partiallink:百度首页文字链接:<ahref=""name="tj_news">新闻</a><ahref=""name="tj_tieba">贴吧</a><ahref=""name="tj_zhidao">知道</a>find_element_by_link_text(u‘新闻’)find_element_by_partial_link_text(‘新’)find_element_by_link_text(u‘贴吧’)...注:中文字符串加u是将中文转换成unicode,防止编码问题。元素的定位:link\partiallink:17元素的定位:xpath:find_element_by_xpath(‘//*[@id='kw1']’)find_element_by_xpath(‘//input[@id='kw1']’)find_element_by_xpath(‘//input[@name='wd']’)find_element_by_xpath(‘//input[@class='s_ipt']’)find_element_by_xpath(‘//span[@class='bgs_iptwr']/input’)find_element_by_xpath(‘//form[@id='form1']/span/input’)....find_element_by_xpath(‘/html/body/div/div[4]/div[2]/div/form/span/input’)元素的定位:xpath:18元素的定位:CSS常见语法:元素的定位:CSS常见语法:19元素的定位:CSS:定位</from>find_element_by_css_selector(‘from’)定位<divclass="subdiv">find_element_by_css_selector(‘.subdiv’)find_element_by_css_selector(‘from+div’)定位<ulid="recordlist">find_element_by_css_selector(‘#recordlist’)find_element_by_css_selector(‘ul#recordlist’)find_element_by_css_selector(‘div>ul’)定位<p>Heading</p>find_element_by_css_selector(‘div>ul’)find_element_by_css_selector(‘div.subdiv>ul>p’)</form><divclass="subdiv"><ulid="recordlist"><p>Heading</p>元素的定位:CSS:</form>20selenium2-python自动化测试实战课件21WebDriverAPI:浏览器最大化:maximize_window()设置浏览器宽、高:set_window_size(480,800)控制浏览器后退,前进:back()forward()WebDriverAPI:浏览器最大化:22WebDriverAPI:WebElement接口常用方法:clear 清除元素的内容send_keys 在元素上模拟按键输入click 单击元素submit 提交表单size返回元素的尺寸text获取元素的文本get_attribute(name)获得属性值is_displayed()设置该元素是否用户可见WebDriverAPI:WebElement接口常用方法23WebDriverAPI:ActionChains类鼠标操作的常用方法:context_click()右击double_click()双击drag_and_drop()拖动move_to_element()鼠标悬停在一个元素上click_and_hold()按下鼠标左键在一个元素上WebDriverAPI:ActionChains类鼠24WebDriverAPI:ActionChains类鼠标操作的常用方法:context_click()右击WebDriverAPI:ActionChains类鼠25WebDriverAPI:ActionChains类鼠标操作的常用方法:drag_and_drop()拖动WebDriverAPI:ActionChains类鼠26WebDriverAPI:ActionChains类鼠标操作的常用方法:move_to_element()鼠标悬停WebDriverAPI:ActionChains类鼠27WebDriverAPI:Keys类键盘操作的常用方法:send_keys(Keys.BACK_SPACE)删除键(BackSpace)send_keys(Keys.SPACE)空格键(Space)send_keys(Keys.TAB)制表键(Tab)send_keys(Keys.ESCAPE)回退键(Esc)send_keys(Keys.ENTER)回车键(Enter)send_keys(Keys.CONTROL,'a')全选(Ctrl+A)send_keys(Keys.CONTROL,'c')复制(Ctrl+C)send_keys(Keys.CONTROL,'x')剪切(Ctrl+X)send_keys(Keys.CONTROL,'v')粘贴(Ctrl+V)WebDriverAPI:Keys类键盘操作的常用方法28WebDriverAPI:ActionChains类鼠标操作的常用方法:move_to_element()鼠标悬停WebDriverAPI:ActionChains类鼠29WebDriverAPI:打印信息(断言的信息):title返回当前页面的标题current_url获取当前加载页面的URLtext获取元素的文本信息WebDriverAPI:打印信息(断言的信息):30WebDriverAPI:打印信息(126邮箱):WebDriverAPI:打印信息(126邮箱):31WebDriverAPI:脚本中的等待时间:sleep():python提供设置固定休眠时间的方法。implicitly_wait():是webdirver提供的一个超时等待。WebDriverWait():同样也是webdirver提供的方法。WebDriverAPI:脚本中的等待时间:32WebDriverAPI:webdriver提供定位一组对象的方法:find_elements_by_id()find_elements_by_name()find_elements_by_class_name()find_elements_by_tag_name()find_elements_by_link_text()find_elements_by_partial_link_text()find_elements_by_xpath()find_elements_by_css_selector()WebDriverAPI:webdriver提供定位一组33WebDriverAPI:定位一组对象,例一:WebDriverAPI:定位一组对象,例一:34WebDriverAPI:定位一组对象,例二:WebDriverAPI:定位一组对象,例二:35WebDriverAPI:层级定位:WebDriverAPI:层级定位:36WebDriverAPI:frame表单嵌套的定位:switch_to_frame方法WebDriverAPI:frame表单嵌套的定位:37WebDriverAPI:div弹窗的处理:WebDriverAPI:div弹窗的处理:38WebDriverAPI:多窗口的处理:current_window_handle获得当前窗口句柄window_handles返回的所有窗口的句柄到当前会话switch_to_window()用于处理多窗口之前切换WebDriverAPI:多窗口的处理:39WebDriverAPI:多窗口的处理:WebDriverAPI:多窗口的处理:40WebDriverAPI:alert/confirm/prompt处理:switch_to_alert()用于获取网页上的警告信息。text 返回alert/confirm/prompt中的文字信息。accept 点击确认按钮。dismiss 点击取消按钮,如果有的话。send_keys 输入值,这个alert\confirm没有对话框就不能用了,不然会报错。WebDriverAPI:alert/confirm/pr41WebDriverAPI:下拉框处理:二次定位:driver.find_element_by_xx('xx').find_element_by_xx('xx').click()WebDriverAPI:下拉框处理:42WebDriverAPI:文件上传:driver.find_element_by_xx('xx').send_keys('d:/abc.txt')WebDriverAPI:文件上传:43WebDriverAPI:文件下载:确定Content-Type:下载文件的类型方法一:curl-IURL|grep"Content-Type"方法二:WebDriverAPI:文件下载:44WebDriverAPI:文件下载:WebDriverAPI:文件下载:45WebDriverAPI:调用javaScript:execute_script()调用js方法WebDriverAPI:调用javaScript:46WebDriverAPI:控制浏览器滚动条:WebDriverAPI:控制浏览器滚动条:47WebDriverAPI:cookie处理:get_cookies()获得所有cookie信息get_cookie(name)返回特定name有cookie信息add_cookie(cookie_dict)添加cookie,必须有name和value值delete_cookie(name)删除特定(部分)的cookie信息delete_all_cookies()删除所有cookie信息WebDriverAPI:cookie处理:48WebDriverAPI:cookie处理:get_cookies()获得所有cookie信息get_cookie(name)返回特定name有cookie信息add_cookie(cookie_dict)添加cookie,必须有name和value值delete_cookie(name)删除特定(部分)的cookie信息delete_all_cookies()删除所有cookie信息WebDriverAPI:cookie处理:49WebDriverAPI:验证码的解决方法:去掉验证码设置万能码验证码识别技术记录cookieWebDriverAPI:验证码的解决方法:50WebDriverAPI:小结:如何使元素定位变得游刃有余?规范前端开发(为页面属性加上必要的id\name)深入理解和使用CSS、xpath精通javascript、jquery利用python语言帮忙WebDriverAPI:小结:51谢谢重定向科技谢谢重定向科技52LOGOselenium2python自动化测试实战---虫师LOGOselenium2python自动化测试实战53selenium2-python自动化测试实战课件54前言:为什么要做自动化测试?A、节省手工测试的人才和成本B、有助于提升测试团队的技术力量C、能够生成直观的图形化报表D、我不知道,领导要求做的前言:为什么要做自动化测试?55前言:分层的自动化测试前言:分层的自动化测试56前言:什么样的产品适合做自动化测试?功能成熟(需求变动较小)产品更新维护周期长项目进度不太大比较频繁的回归测试软件开发比较规范,具有可测试性可以脚本具有可复用性前言:什么样的产品适合做自动化测试?57本课程学习重点:selenium技术:
元素定位的几种方法
WebDriverAPI,seleniumIDE,seleniumgridpython技术:
函数、类、方法;读写文件,unitest单元测试框架,HTMLTestRunner.py,发邮件模块,多线程技术等。本课程学习重点:58seleniumselenium的特点:开源,免费多浏览器支持:firefox、chrome、IE多平台支持:linux、windows、MAC多语言支持:java、python、ruby、php、C#、对web页面有良好的支持简单(API简单)、灵活(用开发语言驱动)支持分布式测试用例执行seleniumselenium的特点:59selenium家谱selenium1.0:selenium2.0=selenium1.0+WebDriverselenium家谱selenium1.0:sele60selenium2-python自动化测试实战课件61环境搭建:window安装:第一步、安装python第二步、安装setuptoolsC:\setuptools-1.3>pythonsetup.pyinstall第三步、安装pipC:\pip-1.4.1>pythonsetup.pyinstall第四步、安装seleniumC:\Python27\Scripts>pipinstall-Uselenium环境变量:
变量名:PATH变量值:;C:\Python27
环境搭建:window安装:变量名:PATH62环境搭建:简易安装(ActivePython):ActivePython包含了一个完整的Python内核,并附加了一些Python的Windows扩展第一步、下载安装ActivePython第二步、安装seleniumC:\Python27\Scripts>pipinstall-Uselenium环境搭建:简易安装(ActivePython):63环境搭建:linux安装(ubuntu):第一步、安装:setuptoolsroot@fnngj-H24X:~#apt-getinstallpython-setuptools第二步、安装piproot@fnngj-H24X:../pip-1.4.1#pythonsetup.pyinstall第三步、安装seleniumroot@fnngj-H24X:../pip-1.4.1#pipinstall-Uselenium环境搭建:linux安装(ubuntu):64第一个自动化脚本:百度搜索:第一个自动化脚本:百度搜索:65selenium2-python自动化测试实战课件66元素的定位:WebDriver提供的八种定位方法:find_element_by_id()find_element_by_name()find_element_by_class_name()find_element_by_tag_name()find_element_by_link_text()find_element_by_partial_link_text()find_element_by_xpath()find_element_by_css_selector()元素的定位:WebDriver提供的八种定位方法:67元素的定位:id\name\classname\tagname:百度搜索框前端代码(通过firebug查看)<input
id="kw1"class="s_ipt"type="text"maxlength="100"name="wd"autocomplete="off">find_element_by_id(‘kw1’)find_element_by_name(‘wd’)find_element_by_class_name(‘s_ipt’)find_element_by_tag_name(‘input’)注:页面上的元素tagname相同的几率很高元素的定位:id\name\classname\tagn68元素的定位:link\partiallink:百度首页文字链接:<ahref=""name="tj_news">新闻</a><ahref=""name="tj_tieba">贴吧</a><ahref=""name="tj_zhidao">知道</a>find_element_by_link_text(u‘新闻’)find_element_by_partial_link_text(‘新’)find_element_by_link_text(u‘贴吧’)...注:中文字符串加u是将中文转换成unicode,防止编码问题。元素的定位:link\partiallink:69元素的定位:xpath:find_element_by_xpath(‘//*[@id='kw1']’)find_element_by_xpath(‘//input[@id='kw1']’)find_element_by_xpath(‘//input[@name='wd']’)find_element_by_xpath(‘//input[@class='s_ipt']’)find_element_by_xpath(‘//span[@class='bgs_iptwr']/input’)find_element_by_xpath(‘//form[@id='form1']/span/input’)....find_element_by_xpath(‘/html/body/div/div[4]/div[2]/div/form/span/input’)元素的定位:xpath:70元素的定位:CSS常见语法:元素的定位:CSS常见语法:71元素的定位:CSS:定位</from>find_element_by_css_selector(‘from’)定位<divclass="subdiv">find_element_by_css_selector(‘.subdiv’)find_element_by_css_selector(‘from+div’)定位<ulid="recordlist">find_element_by_css_selector(‘#recordlist’)find_element_by_css_selector(‘ul#recordlist’)find_element_by_css_selector(‘div>ul’)定位<p>Heading</p>find_element_by_css_selector(‘div>ul’)find_element_by_css_selector(‘div.subdiv>ul>p’)</form><divclass="subdiv"><ulid="recordlist"><p>Heading</p>元素的定位:CSS:</form>72selenium2-python自动化测试实战课件73WebDriverAPI:浏览器最大化:maximize_window()设置浏览器宽、高:set_window_size(480,800)控制浏览器后退,前进:back()forward()WebDriverAPI:浏览器最大化:74WebDriverAPI:WebElement接口常用方法:clear 清除元素的内容send_keys 在元素上模拟按键输入click 单击元素submit 提交表单size返回元素的尺寸text获取元素的文本get_attribute(name)获得属性值is_displayed()设置该元素是否用户可见WebDriverAPI:WebElement接口常用方法75WebDriverAPI:ActionChains类鼠标操作的常用方法:context_click()右击double_click()双击drag_and_drop()拖动move_to_element()鼠标悬停在一个元素上click_and_hold()按下鼠标左键在一个元素上WebDriverAPI:ActionChains类鼠76WebDriverAPI:ActionChains类鼠标操作的常用方法:context_click()右击WebDriverAPI:ActionChains类鼠77WebDriverAPI:ActionChains类鼠标操作的常用方法:drag_and_drop()拖动WebDriverAPI:ActionChains类鼠78WebDriverAPI:ActionChains类鼠标操作的常用方法:move_to_element()鼠标悬停WebDriverAPI:ActionChains类鼠79WebDriverAPI:Keys类键盘操作的常用方法:send_keys(Keys.BACK_SPACE)删除键(BackSpace)send_keys(Keys.SPACE)空格键(Space)send_keys(Keys.TAB)制表键(Tab)send_keys(Keys.ESCAPE)回退键(Esc)send_keys(Keys.ENTER)回车键(Enter)send_keys(Keys.CONTROL,'a')全选(Ctrl+A)send_keys(Keys.CONTROL,'c')复制(Ctrl+C)send_keys(Keys.CONTROL,'x')剪切(Ctrl+X)send_keys(Keys.CONTROL,'v')粘贴(Ctrl+V)WebDriverAPI:Keys类键盘操作的常用方法80WebDriverAPI:ActionChains类鼠标操作的常用方法:move_to_element()鼠标悬停WebDriverAPI:ActionChains类鼠81WebDriverAPI:打印信息(断言的信息):title返回当前页面的标题current_url获取当前加载页面的URLtext获取元素的文本信息WebDriverAPI:打印信息(断言的信息):82WebDriverAPI:打印信息(126邮箱):WebDriverAPI:打印信息(126邮箱):83WebDriverAPI:脚本中的等待时间:sleep():python提供设置固定休眠时间的方法。implicitly_wait():是webdirver提供的一个超时等待。WebDriverWait():同样也是webdirver提供的方法。WebDriverAPI:脚本中的等待时间:84WebDriverAPI:webdriver提供定位一组对象的方法:find_elements_by_id()find_elements_by_name()find_elements_by_class_name()find_elements_by_tag_name()find_elements_by_link_text()find_elements_by_partial_link_text()find_elements_by_xpath()find_elements_by_css_selector()WebDriverAPI:webdriver提供定位一组85WebDriverAPI:定位一组对象,例一:WebDriverAPI:定位一组对象,例一:86WebDriverAPI:定位一组对象,例二:WebDriverAPI:定位一组对象,例二:87WebDriverAPI:层级定位:WebDriverAPI:层级定位:88WebDriverAPI:frame表单嵌套的定位:switch_to_frame方法WebDriverAPI:frame表单嵌套的定位:89WebDriverAPI:div弹窗的处理:WebDriverAPI:div弹窗的处理:90WebDriverAPI:多窗口的处理:current_window_handle获得当前窗口句柄window_handles返回的所有窗口的句柄到当前会话switch_to_window()用于处理多窗口之前切换WebDriverAPI:多窗口的处理:91WebDriverAPI:多窗口的处理:WebDriverAPI:多窗口的处理:92WebDriverAPI:alert/confirm/p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年国家电网招聘之文学哲学类考试题库300道附答案【夺分金卷】
- 2026年投资项目管理师之宏观经济政策考试题库300道及参考答案(突破训练)
- 2026年国家电网招聘之财务会计类考试题库500道附答案【达标题】
- 2026年一级注册建筑师之建筑结构考试题库300道附完整答案【名师系列】
- 2026年心理咨询师之心理咨询师基础知识考试题库500道含答案【模拟题】
- 2026年咨询工程师之宏观经济政策与发展规划考试题库500道及参考答案(达标题)
- 2026年注册安全工程师题库300道含答案(基础题)
- 2026年心理咨询师之心理咨询师基础知识考试题库500道附答案【培优】
- 2026年初级银行从业资格之初级银行管理考试题库500道含完整答案(历年真题)
- 2025年血透知识考试试题及答案
- 检验科工作质量考核表
- 历届全国“挑战杯”课外学术科技作品竞赛获奖作品一览表 第一届到第十二届
- 11466现代企业人力资源管理概论第11章
- 【英文原版小说】the things they carried《负荷》
- 阿里巴巴国际站概述课件
- 骨骼肌的收缩原理
- 万科物业承接查验资料交接清单及规范表格
- 桥梁定期检查PPT59
- DB31T 680.8-2019 城市公共用水定额及其计算方法 第8部分:公共管理和社会组织(机关单位)
- 高职机械制图说课稿市公开课金奖市赛课一等奖课件
- 新教材湘教湘科版四年级上册科学全册课时练(同步练习)
评论
0/150
提交评论