当前位置:首页 > Python > Seleniumpdf电子书
《Selenium自动化测试实战:基于Python》电子书封面

Selenium自动化测试实战:基于Python

  • 发布时间:2021年02月28日 09:12:08
  • 作者:于涌
  • 大小:85 MB
  • 类别:Selenium电子书
  • 格式:PDF
  • 版本:完整版
  • 评分:9.4

Selenium自动化测试实战:基于Python PDF 完整版

    Selenium自动化测试实战:基于Python》是一本关于Selenium相关的电子书资源,介绍了关于Selenium、自动化测试、Python方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小85 MB,于涌编写,目前豆瓣、亚马逊、当当、京东等综合评分为:9.4分,我们还提供了样章在线阅读,一起来看下具体内容。

    Tags:python Selenium 自动化测试 

    内容介绍

    本书以Python 3.8.2为基础,不但介绍了Selenium 4.0 alpha 5的用法,而且介绍了测试模型、测试框架、测试策略方面的很多内容。本书共12章,内容主要包括Selenium自动化测试框架入门、Python环境的搭建、Selenium的安装、Selenium IDE插件的安装与使用、Selenium脚本的编写、Selenium中的元素定位方法、自动化测试模型的搭建、自动化测试框架的设计、Docker命令,以及基于Docker与Selenium Grid的测试技术应用,基于Docker、Jenkins与Selenium实现分布式自动化测试的方法,Selenium在性能测试和安全性测试方面的应用等。 本书适合从事开发、测试、运维等工作的专业人士阅读。

    目录

    • 第1章 Selenium自动化测试框架入门88560
    • 第2章 Python与Selenium环境的搭建
    • 第3章 Selenium IDE插件的安装与使用
    • 第4章 Selenium的配置与第一个可运行的脚本
    • 第5章 Selenium中的元素定位方法与案例演示
    • 第6章 Selenium中的其他方法与案例演示
    • 第7章 自动化测试模型
    • 第8章 自动化测试框架的设计与工具应用
    • 第9章 Docker基础与操作实战
    • 第10章 基于Docker与Selenium Grid的测试技术
    • 第11章 基于Docker、Jenkins与Selenium实现分布式自动化测试
    • 第12章 Selenium在性能测试和安全性测试方面的应用

    读书笔记

    selenium+python自动化测试之页面元素定位

    上一篇博客selenium+python自动化测试(二)–使用webdriver操作浏览器讲解了使用webdriver操作浏览器的各种方法,可以实现对浏览器进行操作了,接下来就是对浏览器页面中的元素进行操作,操作页面元素,首先要找到操作的元素,对元素进行定位

    查看页面源码

    要定位页面元素,需要找到页面的源码,IE浏览器中,打开页面后,在页面上点击鼠标右键,会有“查看源代码”的选项,点击后就会进入页面源码页面,在这里就可以找到页面的所有元素

    使用Chrome浏览器打开页面后,在浏览器的地址栏右侧有一个图标,点击这个图标后,会出现许多菜单项,选择更多工具里的开发者工具,就会出现页面的源码,不同版本的浏览器菜单选项可能不同,但是都会在开发者工具里找到页面的源码

    Firefox浏览器打开页面后,在右键菜单里也可以找到“查看页面源代码”的选项。在Firefox中,可以使用浏览器自带的插件查看定位元素,在Firefox的附加组件里搜索firebug进行下载,安装firebug组件后会在浏览器的工具栏中多出一个小虫子的图标,点击这个图标就可以打开组件查看页面源码,打开后如下图所示

    selenium+python自动化测试之页面元素定位

    以百度首页搜索页面为例,看一下webdriver定位元素的八种方式

    使用id定位

    在页面源码中找到搜索输入框的元素定义

    <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">

    可以看到输入框有一个有一个id的属性,调用find_element_by_id()根据id属性来找到元素,参数为属性的值

    input_search = driver.find_element_by_id("kw")

    使用name定位

    使用find_element_by_name()根据name属性找到元素,参数为name属性的值

    搜索框有一个name=”wd”的属性,使用name查找搜索输入框元素

    input_search = driver.find_element_by_name("wd")

    使用className定位

    使用find_element_by_class_name()根据className属性找到元素,参数为className属性的值

    搜索框有一个class=”s_ipt”的属性,使用className查找元素

    input_search = driver.find_element_by_class_name("s_ipt")

    使用tagName定位

    使用find_element_by_tag_name()根据tagName属性找到元素,参数为元素标签的名称

    每个页面的元素都有一个tag,搜索框的标签为input,有时候一个页面里有许多相同的标签,所以用这种方法找到的元素一般都不准确,除非这个元素使用的标签在这个页面里是唯一的。一般不会使用这种方式来定位元素

    input_search = driver.find_element_by_class_name("input")

    使用link_text定位

    页面上都会有一些文本链接,点击链接后会打开一个新的页面,这些可以点击的链接可以使用find_element_by_link_text来定位,百度首页上方有如下几个元素

    selenium+python自动化测试之页面元素定位

    例如要定位“新闻”,找到元素的代码,有一个href的属性,这是点击后打开的页面

    <a href="http://news.baidu.com" rel="external nofollow" name="tj_trnews" class="mnav">新闻</a>

    使用link_text查找元素,参数为元素的文本信息

    news = driver.find_element_by_link_text("新闻")

    使用partial_link_text定位

    这种方式类似于link_text的定位方式,如果一个元素的文本过长,不需要使用文本的所有信息,可以使用其中的部分文本就可以定位

    使用partial_link_text查找百度首页的“新闻”元素,参数为文本信息,可以使用全部的文本,也可以使用部分文本

    news = driver.find_element_by_link_text("新闻") //使用全部文本
    news = driver.find_element_by_link_text("新") //使用部分文本

    使用css selector定位

    使用css属性定位元素有多种方法,可以使用元素的id、name、className,也可以使用元素的其他属性,如果一个元素没有上述的几种属性或者定位不到时,可以使用css来定位

    还是使用百度搜索框的实例来说明css定位的用法

    <input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
    • css使用元素的id定位

    css属性使用id定位时,使用#号表示元素的id

    input_search = driver.find_element_by_css_selector("#kw") //使用元素的id定位
    • css使用元素的class定位

    css属性使用class定位时,使用.号表示元素的class

    input_search = driver.find_element_by_css_selector(".s_ipt") //使用元素的class定位
    • css使用元素的tag定位

    css属性使用tagName定位时,直接使用元素的标签

    input_search = driver.find_element_by_css_selector("input") //使用元素的tagName定位
    • css使用元素的其他属性

    除了上述3种属性,css属性可以使用元素的其他属性定位,格式如下

    input_search = driver.find_element_by_css_selector("[maxlength='255']") //使用元素的maxlength属性定位
    input_search = driver.find_element_by_css_selector("[autocomplete='off']") //使用元素的autocomplete属性定位

    可以在参数中加入元素的标签名称

    input_search = driver.find_element_by_css_selector("input#kw") //使用元素的id定位
    input_search = driver.find_element_by_css_selector("input.s_ipt") //使用元素的class定位driver.find_element_by_css_selector("input[maxlength='255']") //使用元素的maxlength属性定位
    input_search = driver.find_element_by_css_selector("input[autocomplete='off']") //使用元素的autocomplete属性定位
    • css的层级定位

    当一个元素使用自身的属性不容易定位时,可以通过它的父元素来找到它,如果父元素也不好定位,可以再通过上元素来定位,以此类推,一直找到容易定位的父元素为止,通过层级定位到需要查找的元素

    通过Firefox的firebug组件查看百度首页的源码

    selenium+python自动化测试之页面元素定位

    通过层级来定位搜索框

    input_search = driver.find_element_by_css_selector("form#form>span:nth-child(1)>input")
    input_search = driver.find_element_by_css_selector("form.fm>span:nth-child(1)>input")

    搜索框的父元素为span标签,span的父元素为form,form有id和class属性,可以通过这两个属性来定位,找到form元素后,form下有多个span标签,所以要使用span:nth-child(1),表示form下的第一个span标签,这种用法很容易理解,表示第几个孩子,最后是span下的input标签,span下只有一个input,所以就可以定位到搜索框

    • css逻辑运算

    用一个属性来定位元素时,如果有其他元素的属性和此元素重复,可以组合多个属性来功共同定位

    组合多个属性定位元素定位百度搜索框

    input_search = driver.find_element_by_css_selector("input[id='kw'][name='wd']")

    在元素内定义的属性,都可以使用css来定位,使用其他几种方式无法定位到元素时,可以使用css,够强大!

    使用xpath定位

    XPath是一种在XML文档中定位元素的语言。因为HTML可以看做XML的一种实现,所以selenium用户可是使用这种强大语言在web应用中定位元素。xpath也可以通过元素的各种属性定位到元素

    使用元素属性定位

    input_search = driver.find_element_by_xpath("//*[@id='kw']") //通过元素id查找元素
    input_search = driver.find_element_by_xpath("//*[@name='wd']") //通过元素name查找元素
    input_search = driver.find_element_by_xpath("//*[@class='s_ipt']") //通过元素class查找元素
    input_search = driver.find_element_by_xpath("//*[@maxlength='255']") //通过其他属性查找元素
    input_search = driver.find_element_by_xpath("//*[@autocomplete='off']") //通过其他属性查找元素

    前面的*号表示查找所有的标签元素,可以替换为标签名称,更准确的定位元素

    input_search = driver.find_element_by_xpath("//input[@id='kw']") //通过元素id查找元素
    input_search = driver.find_element_by_xpath("//input[@name='wd']") //通过元素name查找元素
    input_search = driver.find_element_by_xpath("//input[@class='s_ipt']") //通过元素class查找元素
    input_search = driver.find_element_by_xpath("//input[@maxlength='255']") //通过其他属性查找元素
    input_search = driver.find_element_by_xpath("//input[@autocomplete='off']") //通过其他属性查找元素
    • xpath层级定位

    xpath也可以通过层级来定位,定位方式

    selenium+python自动化测试之页面元素定位

    input_search = driver.find_element_by_xpath("//input[@id='form']//span[1]//input")
    driver.find_element_by_xpath("//input[@class='fm']//span[1]//input")

    查找效果和通过css的层级定位是相同的,意思是form元素下面的第一个span元素的input标签子元素

    • xpath

    xpath的逻辑元素通过and运算符来组合元素属性

    input_search = driver.find_element_by_xpath("//input[@id='kw' and name='wd']")
    • 属性匹配

    xpath中还有一种更强大的定位方式,通过模糊匹配元素的属性

    news = driver.find_element_by_xpath("//a[contains(text(), '新闻')]") //查找text中包含"新闻"的元素
    input_search = driver.find_element_by_xpath("//input[contains(@id, 'kw']") //查找id中包含"kw"的元素
    input_search = driver.find_element_by_xpath("//input[starts-with(@id, 'k']") //查找id以"k"开头的元素
    input_search = driver.find_element_by_xpath("//input[ends-with(@id, 'w']") //查找id以"w"结尾的元素
    input_search = driver.find_element_by_xpath("//input[matchs(@id, 'k*']") //利用正则表达式查找元素

    上面介绍了查找页面元素的八种方法,通过这些方式找到的都是单个元素,如果需要批量查找元素,还有和上面方式对应的八种复数形式

    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_css_selector
    find_elements_by_xpath

    这8种方法查找到的是一组元素,返回的是list,可以通过索引来操作元素

    例如页面上的复选框和单选框,或者页面上有多个属相相同的输入框,这些属性相同的一组元素,可以批量获取,然后过滤出需要操作的元素,选择其中的一个或者多个进行操作

    通过百度首页搜索“selenium”关键字,会出现许多搜索结果,这些搜索结果具有相同的属性,不同的是属性的值不同,定位这些元素时,可以使用批量定位的方法

    看下面的代码

    selenium+python自动化测试之页面元素定位

    这是搜索selenium关键字后的页面结果,每一个搜索结果都是可点击的链接,定位这些元素的方法:

    search_results = driver.find_elements_by_css_selector("h.t>a")
    search_results[3].click() //通过索引点击第4条搜索结果

    第二个例子

    <html>
     <head></head>
     <body>
     <h3>checkbox</h3>
     <div class="well">
      <form class="form-horizontal">
      <div class="control-group">
       <label class="control-label" for="c1">checkbox1</label>
       <div class="controls">
       <input type="checkbox" id="c1" />
       </div>
      </div>
      <div class="control-group">
       <label class="control-label" for="c2">checkbox2</label>
       <div class="controls">
       <input type="checkbox" id="c2" />
       </div>
      </div>
      <div class="control-group">
       <label class="control-label" for="c3">checkbox3</label>
       <div class="controls">
       <input type="checkbox" id="c3" />
       </div>
      </div>
      </form>
     </div>
     </body>
    </html>

    这个页面上有3个复选框,打开后如下图所示:

    selenium+python自动化测试之页面元素定位

    操作复选框

    //查找所有的复选框并点击
    checkboxs = driver.find_element_by_xpath('input[@type="checkbox"]')
    for checkbox in checkboxs:
     checkbox.click()
    //点击最后一个复选框
    checkboxs[2].click()

    以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

    以上就是本次介绍的Selenium电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

    上一篇:奔跑吧Linux内核(第2版)卷2:调试与案例分析

    下一篇:技术团队管理者的第一堂管理课

    查看更多
    下载地址:百度网盘下载
    Selenium 相关电子书
    Selenium 2自动化测试实战:基于Python语言
    Selenium 2自动化测试实战:基于Python语言 PDF 高清版 立即下载
    Selenium 2自动化测试实战:基于Python语言
    Selenium 2自动化测试实战:基于Python语言 PDF 高清版

    Selenium 2自动化测试实战:基于Python语言 分为14个章节,第1章是自动化测试相关基础知识的介绍;第2章到第10章是本书的重点,循序渐进地介绍了自动化测试所用到的技术;第11章通过一个具体

    立即下载
    Web接口开发与自动化测试:基于Python语言
    Web接口开发与自动化测试:基于Python语言 PDF 高清版

    Web接口开发与自动化测试:基于Python语言 以接口测试为主线,以Web开发为切入点,全面介绍了Web接口开发与自动化测试过程中使用的相关技术。 全书分为15章,第1章介绍了Python的基础知识,解

    立即下载
    深入理解Android自动化测试
    深入理解Android自动化测试 PDF 高清版

    联想集团董事长兼CEO杨元庆、ZUKCEO常程鼎力推荐,资深测试专家多年经验总结。本书以漫画和对话风格对Android平台的各种自动化测试工具、框架的原理、使用技巧和二次开发进行了详细的讲解

    立即下载
    Selenium自动化测试:基于Python语言
    Selenium自动化测试:基于Python语言 PDF 超清版

    Selenium是一个主要用于Web应用程序自动化测试的工具集合,在行业内已经得到广泛的应用。本书介绍了如何用Python语言调用Selenium WebDriver接口进行自动化测试

    立即下载
    读者心得
    168小时42分钟前回答

    详解Selenium+PhantomJS+python简单实现爬虫的功能

    Selenium 一、简介 selenium是一个用于Web应用自动化程序测试的工具,测试直接运行在浏览器中,就像真正的用户在操作一样 selenium2支持通过驱动真实浏览器(FirfoxDriver,IternetExplorerDriver,OperaDriver,ChromeDriver) selenium2支持通过驱动无界面浏览器(HtmlUnit,PhantomJs) 二、安装 Windows 第一种方法是:下载源码安装,下载地址(https://pypi.python.org/pypi/selenium)解压并把整个目录放到C:\Python27\Lib\site-packages下面 第二种方法是:可以直接在C:\Python27\Scripts 下输入命令安装 pip install -U selenium sudo pip install selenium PhantomJS 一、简介 PhantomJS 是一个基于 WebKit(WebKit是一个开源的浏览器引擎,Chrome,Safari就是用的这个浏览器引……

    123小时6分钟前回答

    Java+Eclipse+Selenium环境搭建的方法步骤

    先选好自己要学的Selenium的版本然后再进行安装,少走弯路,,,, ===================================所需环境========================== 1、安装JAVA (我用的版本jdk-8u191-windows-x64) 官网:http://www.oracle.com/technetwork/java/javase/downloads/index.html java环境分JDK和JRE,JDK就是Java Development Kit。JDK是面向开发人员使用的SDK,它提供了Java的开发环境和运行环境。JRE是Java Runtime Eneiroment是指Java的运行环境,是面向Java程序的使用者。 安装比较简单,,,,不多说了 完成之后切记加环境变量 JAVA_HOME:C:\Program Files\Java\jdk1.8.0_191\ CLASS_PATH:;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; PATH:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 环境变量配好后,Windows+……

    码农之家

    能奇致 提供上传

    资源
    18
    粉丝
    50
    喜欢
    74
    评论
    16

    Copyright 2018-2021 www.xz577.com 码农之家

    版权投诉 / 书籍推广:520161757@qq.com