精华内容
下载资源
问答
  • xpath路径参数化
    2021-09-08 12:12:44

    由于各种定制化的原因,导致自动化脚本出现问题,例如A版本有四个导航按钮,B版本有5个导航按钮,且新增的按钮在第一个,导致后续定位全部出错。我们可以使用参考此文章

    https://blog.csdn.net/qq_41529264/article/details/120159261

    ,进行判定几个导航按钮。

    然后元素时,进行判定。

    方法一,使用join

            n=13
            seq=["//div[@id='treemenu']/div/div[",str(n),"]"]
            ls=''.join(seq)
            self.driver.find_element_by_xpath(ls).click()

    方法二:使用字符串拼接

            location=str("//div[@id='treemenu']/div/div["+str(n)+"]")
            self.driver.find_element_by_xpath(location).click()#点击父菜单的帮助

    更多相关内容
  • XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer...

    简介

    XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

    XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快地被开发者采用来当作小型查询语言。

    语法

    选取节点 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。

    下面列出了最有用的路径表达式:

    在这里插入图片描述
    在下面的表格中,我们已列出了一些路径表达式以及表达式的结果:
    在这里插入图片描述
    谓语(Predicates)

    谓语用来查找某个特定的节点或者包含某个指定的值的节点。谓语被嵌在方括号中。

    实例:
    在下面的表格中,我们列出了带有谓语的一些路径表达式,以及表达式的结果:

    在这里插入图片描述
    选取未知节点

    XPath 通配符可用来选取未知的 XML 元素。
    在这里插入图片描述
    实例:
    在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
    在这里插入图片描述
    选取若干路径

    通过在路径表达式中使用“|”运算符,您可以选取若干个路径。

    实例:

    在下面的表格中,我们列出了一些路径表达式,以及这些表达式的结果:
    在这里插入图片描述
    在这里插入图片描述
    表达式

    XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。路径表达式是从一个XML节点(当前的上下文节点)到另一个节点、或一组节点的书面步骤顺序。

    这些步骤以“/”字符分开,每一步有三个构成成分:

    一般情况下,我们使用简写后的语法。虽然完整的轴描述是一种更加贴近人类语言,利用自然语言的单词和语法来书写的描述方式,但是相比之下也更加啰嗦。

    运算符

    下面列出了可用在 XPath 表达式中的运算符:

    在这里插入图片描述
    在这里插入图片描述
    标准函数

    XPath 含有超过 100 个内建的函数。这些函数用于字符串值、数值,日期和时间比
    较、节点和 QName 处理、序列处理、逻辑值等等。

    使用:

    XPath 是 XSLT 标准中的主要元素。如果没有 XPath 方面的知识,您就无法创建 XSLT 文档。

    XQuery 和 XPointer 均构建于 XPath 表达式之上。XQuery 1.0 和 XPath 2.0 共享相同的数据模型,并支持相同的函数和运算符。

    标准:

    XPath 于 1999年11月16日 成为 W3C 标准。

    XPath 被设计供 XSLT、XPointer 以及其他 XML 解析软件使用。

    轴定义

    轴可定义相对于当前节点的节点集。(以当前节点为轴心)

    在这里插入图片描述
    位置路径表达式
    位置路径可以是绝对的,也可以是相对的。

    绝对路径起始于正斜杠( / ),而相对路径不会这样。在两种情况中,位置路径均包括一个或多个步,每个步均被斜杠分割:

    • 绝对位置路径:/step/step/…
    • 相对位置路径:step/step/…
    • 每个步均根据当前节点集之中的节点来进行计算

    每个步均根据当前节点集之中的节点来进行计算

    步(step)包括:

    • 轴(axis)

    • 定义所选节点与当前节点之间的树关系

    • 节点测试(node-test)

    • 识别某个轴内部的节点

    • 零个或者更多谓语(predicate)

    • 更深入地提炼所选的节点集

    步的语法:轴名称::节点测试[谓语]

    实例:

    在这里插入图片描述

    节点关系
    节点(Node)是XPath 的术语。

    在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。XML 文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

    • 父(Parent)

    每个元素以及属性都有一个父。

    在下面的例子中,book 元素是 title、author、year 以及 price 元素的父:
    在这里插入图片描述

    • 子(Children)

    元素节点可有零个、一个或多个子。

    在下面的例子中,title、author、year 以及 price 元素都是 book 元素的子:

    在这里插入图片描述

    • 同胞(Sibling)(兄弟)

    拥有相同的父的节点

    在下面的例子中,title、author、year 以及 price 元素都是同胞:
    在这里插入图片描述

    • 先辈(Ancestor)

    某节点的父、父的父,等等。

    在下面的例子中,title 元素的先辈是 book 元素和 bookstore 元素:

    在这里插入图片描述

    • 后代(Descendant)

    某个节点的子,子的子

    在下面的例子中,bookstore 的后代是 book、title、author、year 以及 price 元素:

    出资能去在这里插入图片描述

    存取函数

    • fn:node-name(node) 返回参数节点的节点名称。

    • fn:nilled(node) 返回是否拒绝参数节点的布尔值。

    • fn:data(item.item,…) 接受项目序列,并返回原子值序列。

    • fn:base-uri()

    • fn:base-uri(node)

    • 返回当前节点或指定节点的 base-uri 属性的值。

    • fn:document-uri(node)

    • 返回指定节点的 document-uri 属性的值。

    语言升级

    在 W3C 建议下,XPath 1.0于 1999年 11月16日 发表。XPath 2.0 正在W3C审核过程的最终阶段。XPath 2.0表达了XPath语言在大小与能力上显著的增加。

    最值得一提的改变是XPath 2.0有了更丰富的型别系统;XPath 2.0支持不可分割型态,如在 XML Schema 内建型态定义一样,并且也可自纲要(schema)导入用户自定型别。每个值都是一个序列(一个单一不可分割值或节点都被视为长度一的序列)。XPath 1.0节点组被节点序列取代,它可以是任何顺序。

    为了支持更丰富的型别组,XPath 2.0提供相当延展的函式与操作子群。

    XPath 2.0实际上是 XQuery 1.0 的子集合。它提供了一个for表达式。该式是XQuery里“FLWOR”表达式的缩减版。利用列出XQuery省去的部分来描述该语言是可能的。主要范例是查询前导语(query prolog)、元素和属性建构式、“FLWOR”语法的余项式、以及typeswitch表达式。

    实例
    在这里插入图片描述
    最后,学习方法送上:

    在这里插入图片描述
    这些资料,以及上方的自动化测试进阶线路详细讲解,对于想进阶测试的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。希望对大家有所帮助…….

    祝大家都能拿到心动的offer~~

    展开全文
  • driver.find_element_by_xpath( "//*[@id='treeCountryGroup']//li[@class='level0']/span[starts-with(@class,'button chk checkbox_true')]").click() time.sleep(3) # 展开所有选项 driver

    我的需求是这样的:
    获取树状列表所有元素,然后可以根据元素勾选对应的复选框
    在这里插入图片描述
    1.获取树状列表

        # 清空选项
        driver.find_element_by_xpath(
            "//*[@id='treeCountryGroup']//li[@class='level0']/span[starts-with(@class,'button chk checkbox_true')]").click()
        time.sleep(3)
        # 展开所有选项
        driver.find_element_by_id('CGExpandAll').click()
        time.sleep(2)
        # 获取整个列表
        country_list = driver.find_elements_by_xpath('//*[@id="treeCountryGroup"]')  # 定位到整个树状结构列表元素
        list_name = []
        for item in country_list:
            name = item.text
            print(name)
            list_name.append(name)
    
        lists=list_name[0].split('\n')
        print(lists)
        print(len(lists))
    

    2.因为复选框是从1开始,所以我获取列表长度,然后和树状列表组成一个字典,在根据字典的value找key

        d=[]
        for i in range(1,len(lists)):
            d.append(i)
        print(d)
        f=zip(d,lists)
        f=dict(f)
        print(f)
    
        f1={v : k for k, v in f.items() }
        print(f1)
    

    3.search栏位,输入值,然后勾选

        driver.find_element_by_id('txtKeySearch').send_keys(‘ROI’)
        time.sleep(1)
        print(f1[c])
        path='//*[@id="treeCountryGroup_10_check"]'
        driver.find_element_by_xpath(path).click()
        time.sleep(2)
    

    4.xpath 参数化,用format
    以下是全部代码

    def setting(c):
        # 点击Setting
        driver.switch_to.frame('ifContent')
        driver.find_element_by_xpath('//*[@id="btnSetting"]').click()
        time.sleep(2)
        # 选择国家\清空选项
        driver.find_element_by_xpath(
            "//*[@id='treeCountryGroup']//li[@class='level0']/span[starts-with(@class,'button chk checkbox_true')]").click()
        time.sleep(3)
        # 展开所有选项
        driver.find_element_by_id('CGExpandAll').click()
        time.sleep(2)
        # 获取整个列表
        country_list = driver.find_elements_by_xpath('//*[@id="treeCountryGroup"]')  # 定位到整个树状结构列表元素
        list_name = []
        for item in country_list:
            name = item.text
            print(name)
            list_name.append(name)
    
        lists=list_name[0].split('\n')
        print(lists)
        print(len(lists))
        
    	#获取树状列表长度,再和树状列表组成一个字典
        d=[]
        for i in range(1,len(lists)):
            d.append(i)
        print(d)
        f=zip(d,lists)
        f=dict(f)
        print(f)
        
        #字典的value和key 对调位置,通过value找key
        f1={v : k for k, v in f.items() }
        print(f1)
        
        #对xpath参数化
        driver.find_element_by_id('txtKeySearch').send_keys(c)
        time.sleep(1)
        print(f1[c])
        path='//*[@id="treeCountryGroup_{}_check"]'.format(f1[c])
        driver.find_element_by_xpath(path).click()
        time.sleep(2)
    #方法调用
    setting('ROI')
    

    写了好多代码,应该有比这更简单的方法,刚学python,如果有好的方法在更新

    展开全文
  • python自动测试--xpath

    2021-10-15 10:30:16
    1.今天我们来讲讲xpath提取器,再这之前呢我们先来了解一下什么是自动测试,其实软件自动测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动测试,他是软件测试的一个重要组成部分...

    1.今天我们来讲讲xpath提取器,再这之前呢我们先来了解一下什么是自动化测试,其实软件自动化测试就是通过测试工具或者其他手段,按照测试人员的预定计划对软件产品进行自动化测试,他是软件测试的一个重要组成部分,能够完成许多手工测试无法完成或者难以实现的测试工作,正确合理的实施自动化测试,能够快速,全面的对软件进行测试,从而提高软件质量,节省经费,缩短软件的发布周期。
    2.那我们的自动化是怎么形成的呢。
    (1).自动化测试就是任何利用工具来辅助的测试,几乎在计算机工业产生的第一天,这种测试就出现了。

    (2).历史上从来没有出现过“测试自动化取代测试工程师工作”这种事情发生,除非你完全忽略测试人员们的真正工作。

    (3).测试自动化意味着使用测试工具。自动化测试是个古老的理念
    3.我们为什么要进行自动化测试呢。
    (1)缩短测试周期
    计算机行业更新迭代快速,大量频繁的回归测试消耗时间,自动化测试能够将重复的实行交给计算机去做,加快测试速度。

    (2)避免人为出错
    	测试人员不可能持续高度集中,并且人类易受外界影响(头疼脑热,精神不振),可能会造成人为错误
    	
    (3)测试信息存储
    	自动化测试将测试信息和数据储存在文件中,思路清晰明确,交接方便。
    

    4.接下来就是我们今天的主题,xpath提取数据,xpath一般可以再两种格式中提取数据,xml和hrml中。
    在这里插入图片描述
    5.节点的概念:每个XML/HTML的标签我们都称之为节点。
    在这里插入图片描述
    在这里插入图片描述
    6.接下来我们就来看一下我们的xpath是怎么用的我们进入火狐浏览器,右键点击使用firebug查看元素,下方出现工具栏,再工具栏中点击firepath。在这里插入图片描述
    7.接下来我们就可以输入元素进行提取了。在这里插入图片描述
    8.先来看一下我们的表达式。在这里插入图片描述
    9,那我们咱们找到谋个特定的解惑呢,通过路径表达式。在这里插入图片描述
    10.我们可以用【】来直接选择你要的那一条。在这里插入图片描述
    11.如果咱们选择的元素比较多的话,而你要的元素正好再后边,可以之家用last()拿出最后一个元素。在这里插入图片描述
    12.如果它不在倒数第一个,那我们还可以再last()后面添加负数进行取值。在这里插入图片描述
    13.我们要是需要的数据比较多还可以通过范围来判断。在这里插入图片描述
    14.我们还可以选择它的所有元素。在这里插入图片描述
    15.选择文档中的所有元素。在这里插入图片描述

    展开全文
  • 1 scrapy——xpath路径使用
  • 文章目录一、前言二、Xpath元素定位2.1 元素定位原则2.2 Xpath介绍2.3 浏览器中的Xpath2.4 浏览器中使用Xpath 一、前言   本文章主要会讲解html的一些基础语法和使用,了解对应的基础语法后会对后续的自动测试有...
  • Python Xpath 的使用

    2020-12-04 04:39:53
    Xpath 的使用在用 Python 实现爬虫时,可以使用 requests 库访问资源,然后用正则表达式提取信息。但是,这里会有一些繁琐,因为正则表达式的书写是比较严格的,万一有一个地方写错了,可能会导致匹配失败无法提取...
  • 1、scrapy——xpath路径使用

    万次阅读 2017-03-19 23:19:14
     除了HTML,XML的基本协议,了解xpath的基础上,再使用正则表达式(python下的re包提供支持)提取一定格式的信息 ... xpath是Scrapy下快速提取特定信息(如title,head,href等)的一个接口。  为了方便使用XPaths
  • xpath解析

    千次阅读 2021-04-25 13:38:26
    2.实例etree对象tree 3.数据解析 4.保存爬取到的数据 1.引入etree模块 在这里,我学习的视频里面导入etree模块是直接从lxml库中导入的,但是好像py3以后就不能直接从lxml库中导入etree了,需要先从lxml中导入html...
  • el2.click() #图片路径参数化 el3 = driver.find_element_by_xpath( "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android....
  • xpath的使用

    千次阅读 2021-11-19 10:29:50
    XPath是xml的路径语言,也是一门在xml文档中查找信息的语言。 1.xpath常用规则 表达式 描述 nodename 选取此节点的所有节点 / 从当前节点选取子节点
  • Selenium:xPath定位实践

    2020-08-24 09:49:33
    本人一直是坚定的xpath党,定位方式非常灵活,而且运用熟练了之后,还可以对UI自动的PO模式进行一定的扩展。 绝对路径vs相对路径 相对其他定位方式来说,xpath的使用有一定的门槛,刚开始接触时可能只会通过...
  • 1.问题描述:现有一个XML文档,想通过输入一个XPath值来获取该结点或者获取该结点的元素,并输出。2.实现方式:利用javax.xml.xpath包,它提供一个引擎和对象模型独立的XPath库.只要Java的环境>1.5,无需增加类库...
  • 爬虫bs4与xpath

    2021-06-15 19:45:20
    爬虫bs4与xpathbs4安装方法:返回文本:返回属性值:测试:代码如下:xpath安装:创建对象方法:返回文本:返会属性:测试:代码如下: bs4 bs4为python的一个第三方库 安装 使用pip3下载: pip3 install bs4 导入...
  • XPATH注入

    2021-01-28 05:17:57
    就拿来学习了一下链接:XPATHXPath 即为 XML 路径语言,是 W3C XSLT 标准的主要元素,它是一种用来确定 XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath 基于 XML 的树状结构,有不同类型的节点,包括...
  • 最近在用selenium做web工程自动测试的相关项目,会经常用到元素定位,由于原项目开发中并不是所有关键元素都加有id,所以xpath就成为了使用最为频繁的定位方式。 众所周知,xpath定位分为绝对定位和相对定位,...
  • xpath定位元素几乎是万能的了,可以定位到99%的元素;...在网上copy了一段代码,就以这个做说明吧,xpath定位元素分相对路径和绝对路径,主要说明下相对路径的用法。示例代码如下: <div id="wrapper" style="di
  • 我们就用get进行请求,因为我们要实例网页源码才能使用Xpath来进行爬取图片,所以我们后面就跟上了 .text 以便实例,后面的就是中文转码,要不然名字什么的,都是乱码。Xpath就是用 etree.HTML 进行实例,...
  • App自动xpath定位

    2022-09-27 21:35:31
    App自动化xpath定位
  • xpath&css选择器

    2021-08-05 04:55:34
    本文参考较多,原创基本没有,权当知识归纳。xpath并不复杂,简单的使用看完之后,及时查阅文档也是可以写出来的。这里放上我的练手文件,大家可以参考,或者挑毛病(__) 嘻嘻……...搜索方法xpath使用路径表达式在x...
  • Xpath注入详解

    千次阅读 2019-08-14 10:25:01
    XPath即为XML路径语言,是W3C XSLT标准的主要元素,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。它是一种用来在内存中导航整个XML树的语言,它的设计初衷是作为一种面向XSLT和XPointer的...
  • 定位方法之xpath定位

    千次阅读 2021-03-05 00:13:37
    (2)xpath:xml path,就是xml路径语言,是在xml里查找元素或属性的一种技术,用描述元素在整个文件里所在路径的方式来查找信息。(简单来讲就是元素的路径) 说明:html可以被看做是标记固定的一种xml,所以xpath...
  • Xpath的使用(详细教学)

    千次阅读 2022-01-29 10:03:21
    XPath的选择功能十分强大,他提供了非常简洁明了的路径选择表达式。另外,它还提供了100多个内建函数, 用于字符串,数值,时间的匹配以及节点,序列的处理。几乎所有我们想要定位的节点。都可以用XPath选择。 2....
  • 为什么要使用xpath 当元素没有id name属性,通过class,tagname找到的不是唯一的,...相对路径xpath表达式 //相对路径 *表示任意的标签名称 //input 表示标签是input []条件 //input[@id=”kw”] 表示要在input标签...
  • XPath的使用

    千次阅读 2022-04-11 16:01:41
    XPath 本文主要分为三个部分,首先是将网页内容转为XPath解析对象,然后通过该对象进行节点的选择以及...我们可以通过etree.HTML()或etree.parse()这两个类来初始化XPath解析对象。 etree.HTML() from lxml import e
  • XPath详解教程

    千次阅读 2022-01-14 17:10:52
    1. XPath 概览 2. XPath 常用规则 3. 准备工作 4.实例引入 5.所有节点 6. 子节点 7.父节点 8.属性匹配 9.文本获取 10.属性获取 11.属性多值匹配 12. 多属性匹配 13.按序选择 14. 节点轴选择 结语
  • xpath 常用语法

    2020-12-21 23:55:10
    选取节点XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式:表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点...
  • Xpath#encoding='utf-8'#XPath,全称XML Path Language,即XML 路径语言,它是一门在XML 文档中查找信息的语言。#它最初是用来搜寻XML文档的,但是它同样适用于HTML文档的搜索。#XPath常用规则:nodename 选择此节点的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,911
精华内容 5,964
热门标签
关键字:

xpath路径参数化