首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【UI自动化-2】UI自动化元素定位专题

常用定位方式 众所周知,Selenium提供了8种定位方式: id:根据id定位,是最常用的定位方式,因为id具有唯一性,定位准确快捷 name:通过元素的【名称】属性定位,name会存在不唯一的情况...,再从此上级元素出发,通过元素之间的层级关系定位到目标元素。...例如: By.xpath("//form[2]") 通过相对路径定位元素,其核心思想在于,当目标元素不能直接定位时,先找到一个能直接定位到的元素,我称之为锚点元素,再通过目标元素与锚点元素之间的位置关系进行定位...By.xpath("//div[@id='parent']/div[2]") 2、通过子级节点查找父级节点 By.xpath("//div[@id='B']/..") 3、通过兄弟节点定位 By.xpath...//form[@*]:表示所有具有属性的form元素。 //form[not(@*)]:表示所有不具有属性的form元素。 //form[@id="myId"]:表示id值为myId的form元素。

1.9K30

XPath知识点梳理

轴(axis)    定义所选节点与当前节点之间的树关系;  XPath规定了节点之间的一系列的关系 b....XPath约定DOM元素 节点之间的关系有以下几种: 轴名称 结果 ancestor 选取当前节点的所有先辈(父、祖父等)。...* 通配符;选择所有元素节点与元素名无关。(不包括文本,注释,指令等节点,如果也要包含这些节点请用node()函数) @ 属性名的前缀。 @* 选择所有属性,与名称无关。...| 两个节点集合的联合,如://messages/message/to | //messages/message/cc - 减法。 div, 浮点除法。 and, or 逻辑运算。 mod 求余。...注意:查找同级节点是顺序查找,而不是递归查找。 //message[@id=0]/body/preceding-sibling::node() 顺序查找body标签前的所有同级节点。

1.1K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Xpath的常用定位方法及轴定位

    Xpath常用的定位方法 相信做过selenium UI自动化的朋友都知道,工作中大部分的元素定位都是使用xpath进行定位,所以xpath是UI自动化工作中非常重要的一个环节,所以我单独整理出来一篇博客出来...span/ul//li[last()] 如果我们要定位到倒数第二个,可以在last() 后面加上 -1,代表倒数第二个 //标签名[last()-1] //span/ul//li[last()-1] 属性查找...@ 如,这里我们以百度为例,如果我们要定位到百度的id元素,那么可以使用 //标签名[@元素名称=‘元素值’] //标签名[@元素名称='元素值'] //input[@id='kw'] xpath...::* 查找books1所有的同级元素都查找出来,“*”表示所有 //div[3]/table/tbody/tr[1]/td[1]/following-sibling::td[2] 查找td[1]下同级节点下的第二个节点...2]下year前的同级节点 查找节点的父辈 /bookstore/book[2]/year/parent::* 查找节点的子辈 /bookstore/book[2]/descendant::* 使用position

    1.7K10

    XPath语法_java中path的作用

    XPath简介 XPath是W3C的一个标准。它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计。目前有XPath1.0和XPath2.0两个版本。...在学习XPath之前你应该对XML的节点,元素,属性,原子值(文本),处理指令,注释,根节点(文档节点),命名空间以及对节点间的关系如:父(Parent),子(Children),兄弟(Sibling)...相对路径与绝对路径: 如果”/”处在XPath表达式开头则表示文档根元素,(表达式中间作为分隔符用以分割每一个步进表达式)如:/messages/message/subject是一种绝对路径表示法,它表明是从文档根开始查找节点.../sender表示选择当前节点下的sender节点集合(等同于下面所讲的”特定元素”,如:sender) 父节点(../): 如.....注意:查找同级节点是顺序查找,而不是递归查找。 //message[@id=0]/body/preceding-sibling::node() 顺序查找body标签前的所有同级节点。

    8.8K20

    彻底学会Selenium元素定位

    ID 通过元素的id属性定位,一般情况下id在当前页面中是唯一的。使用id选择器的前提条件是元素必须要有id属性。由于id值一般是唯一的,因此当元素存在id属性值时,优先使用id方式定位元素。...name定位方式使用的前提条件是元素必须有name属性。由于元素的name属性值可能存在重复,所以必须确定其能够代表目标元素唯一性后,方可使用。...): 通过元素属性定位 单个属性 使用目标元素的任意一个属性和属性值(需保证唯一性)。...注意: 使用 XPath 策略,建议先在浏览器开发者工具中根据策略语法,组装策略值,测试验证后再放入代码中使用。 目标元素的有些属性和属性值可能存在多个相同特征的元素,需注意唯一性。...,解决单个属性和属性值无法定位元素唯一性的问题。

    7.2K32

    Xpath、Jsoup、Xsoup(我的Java爬虫之二)

    从Xpath说起 什么是Xpath XPath是W3C的一个标准。它最主要的目的是为了在XML1.0或XML1.1文档节点树中定位节点所设计。.../bookstore/book[position()两个属于 bookstore 元素的子元素的 book 元素。...+ siblingB: 查找在A元素之前第一个同级元素B,比如:div.head + div siblingA ~ siblingX: 查找A元素之前的同级X元素,比如:h1 ~ p el, el,...el:多个选择器组合,查找匹配任一选择器的唯一元素,例如:div.masthead, div.logo 伪选择器selectors :lt(n): 查找哪些元素的同级索引值(它的位置在DOM树中是相对于它的父节点...)小于n,比如:td:lt(3) 表示小于三列的元素 :gt(n):查找哪些元素的同级索引值大于n,比如: div p:gt(2)表示哪些div中有包含2个以上的p元素 :eq(n): 查找哪些元素的同级索引值与

    1.9K20

    Selenium系列(十三) - 自动化必备知识之Xpath的详细使用

    什么是Xpah 官方:XPath 是一门在 XML 文档中查找信息的语言。...XPath 用于在 XML 文档中通过元素和属性进行导航 【XPath 使用路径表达式来选取 XML 文档中的节点或者节点集】 Xpath的缺点 Xpath 这种定位方式, webdriver会将整个页面的所有元素进行扫描以定位我们所需要的元素...,但它是万能的;所以如果用其他方式无法定位时,可以用Xpath进行定位 在App UI自动化中,Xpath是唯一可以定位元素的方式 Xpath常见的表达式 表达式等价于CSS描述 nodename...它是从1开始的 如: //input[2] ,表示任意节点下的第二个 input 标签 Xpath等价于CSS选择器的栗子 首先我们访问:https://www.51job.com/ 然后按F12,选中.../可替代,略显多余】 preceding 选取文档中当前节点的开始标签之前的所有节点 preceding-sibling 选取当前节点之前的所有同级节点 Xpath其他方式的实际栗子 继续拿

    1.6K30

    《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)

    如果使用span/input[1],会发现固定位出输入框和按钮元素,这是因为页面中含有两个span节点,每个span节点都包含input元素,XPath在查找的时候,把每个span节点都当作相同的其实层级开始查找...5.3使用页面属性定位 标签属性定位,相对比较简单,也要求属性能够定位到唯一一个元素,如果存在多个相同条件的标签,默认只是第一个,具体格式: xxx.By.xpath("//标签[@属性='属性值']"...']") (2)当标签属性很少,不足以唯一区别元素时,但是标签中间中间存在唯一的文本值,也可以定位,其具体格式 xxx.By.xpath("//标签[contains(text(),'文本值')]")...有不想使用感觉对路径的定位方式,也没法搞清使用什么序号来定位元素,那么则推荐使用属性值定位元素的方法。 被测试网页的元素一般都包含各种各样的属性值,并且很多属性值具有唯一性。...//img[@alt=’div2-img2’]/ preceding-sibling::a[1] 查找alt属性值为div2-img2的照片页面元素,并基于图片的位置找到它前面同级节点中的第二个链接页面元素

    3.5K41

    软件测试测试开发|Python selenium CSS定位方法详解

    选择\同级后的所有\元素伪属性选择器伪属性选择器是指元素在html中实际并不存在该属性,是由css定义的拓展描述属性选择器 格式...示例 示例说明唯一子元素 :only-child p:only-child 选择所有\元素且该元素是其父级的唯一一个元素第一子元素...:nth-last-of-type(n) p:nth-last-of-type(2) 选择所有\元素且该元素是其父级的倒数第二个\元素使用示例通过id选择器查找通过css定位的id属性查找百度首页的输入框元素...driver.maximize_window() element = driver.find_element(By.CSS_SELECTOR, '.bg.s_ipt_wr > input')print(element)注:如果两个元素之间不是直接的子元素关系...,代码也非常简洁,相对于xpath定位方法来说,它的定位速度快,在能够使用CSS定位的情况下,推荐使用CSS定位来实现元素的定位。

    38210

    Appium iOS 元素定位与操作

    每个元素都有不同的属性值,常用属性值如下: type:元素类型,与className作用一致,如:XCUIElementTypeButton value:元素值 name:元素的文本内容,可用作 AccessibilityId...label或name(两个属性的值都一样)属性进行定位,如该属性为空,也是不能使用该属性。...driver.find_element_by_accessibility_id('ClearEmail') class_name 使用元素的type属性定位,特别注意该属性的唯一性!...("value=='xxx'") #定位目标元素 xpath xpath定位是一种路径定位方式,主要是依赖于元素绝对路径或者相关属性来定位,但是绝对路径xpath执行效率比较低(特别是元素路径比较深的时候...选取当前节点的父节点。 @ 选取属性。 xpath匹配符 通配符 描述 * 匹配任何元素节点。 @* 匹配任何属性节点。 node() 匹配任何类型的节点。

    4.5K20

    XPath元素定位常用的5种方法(相对路径)

    一、XPath定位 定位 说明 //ul/* ul的所有子元素 //input[2] 第2个input元素 //input[last() 最后一个input元素 input[position()属性pwd的值等于123456的input元素 //ul/*[5] ul的第五个子元素 //*[text()=‘Heading’ 任意包含Heading文本的元素 //input[@*=‘SYS123456...(HTML页面之前的) * preceding-sibling:当前元素节点标签之前的所有兄弟节点(同级) * following:当前元素节点标签之后的所有节点 * following-sibling...:当前元素节点标签之后的所有兄弟节点(同级) * 使用语法:轴名称::节点名称前后的定位与之前一致,用/隔开即可 * //div//table/td/preceding::td/following-sibling...语法是:$x("your_xpath_selector") 2、表达式正确,元素定位正确时,会查找出该元素,如下图: 3、未定位准确,找不到该元素,查找结果为空,如图: 4、表达式不正确,无法正常识别情况

    9.7K30

    XML文档节点导航与选择指南

    XPath(XML Path Language)是XSLT标准的主要组成部分。它用于在XML文档中浏览元素和属性,提供了一种强大的定位和选择节点的方式。...XPath表达式也可以在多种编程语言中使用,如JavaScript、Java、XML Schema、PHP、Python、C和C++等。...具有XPath知识可以充分发挥XSLT的强大功能XPath节点在XPath中,有七种节点:元素、属性、文本、命名空间、处理指令、注释和根节点。XML文档被视为节点树,树的最顶层元素称为根元素。...XPath术语节点(Node): 在XPath中,有七种节点,包括元素、属性、文本、命名空间、处理指令、注释和根节点。XML文档被视为节点树,树的最顶层元素称为根元素。...节点之间的关系在XPath中,节点之间有不同的关系:父节点(Parent Node): 每个元素和属性都有一个父节点。子节点(Child Node): 元素节点可以有零、一个或多个子节点。

    11300

    【Playwright+Python】系列教程(五)元素定位

    建议使用文本定位器来查找非交互式元素,如 div、span、p 等。对于button、a、input等交互式元素,请使用角色定位器。...5、通过替代文本定位 通过其文本替代来定位元素(通常是图像),所有图片都应具有描述图像的 alt 属性。可以使用page.get_by_alt_text() 根据替代文本查找图片。...(如 img 和 area 元素)时,建议使用此定位器 6、按标题定位 按元素的 title 属性查找元素语法:page.get_by_title()Dom结构示例: 示例代码: expect(page.get_by_title...("Issues count")).to_have_text("25 issues") 说明:当元素具有 title 属性时,建议使用此定位器7、按测试 ID 查找根据元素data-testid 属性来定位元素...page.locator() 创建一个定位器,该定位器采用一个选择器来描述如何在页面中查找元素。

    47810

    Python3网络爬虫实战-28、解析库

    对于网页的节点来说,它可以定义 id、class 或其他的属性,而且节点之间还具有层次关系,在网页中可以通过 XPath 或 CSS 选择器来定位一个或多个节点。...XPath的使用 XPath,全称 XML Path Language,即 XML 路径语言,它是一门在XML文档中查找信息的语言。....html">fifth item 其中一个节点因为自动修正,li 节点的尾标签添加的时候换行了,所以提取文本得到的唯一结果就是 li 节点的尾标签和 a 节点的尾标签之间的换行符。...节点轴选择 XPath 提供了很多节点轴选择方法,英文叫做 XPath Axes,包括获取子元素、兄弟元素、父元素、祖先元素等等,在一定情况下使用它可以方便地完成节点的选择,我们用一个实例来感受一下:...第七次选择我们调用了 following-sibling 轴,可以获取当前节点之后的所有同级节点,这里我们使用的是 * 匹配,所以获取了所有后续同级节点。 以上是XPath轴的简单用法 14.

    2.3K20

    如何在Selenium WebDriver中查找元素?(一)

    在Selenium WebDriver中查找元素:“ FindElement”和“ FindElements”之间的区别 查找元素 查找元素 如果定位器发现了多个Web元素,则返回第一个匹配的Web元素...有多种方法可以唯一地标识网页中的一个Web元素,例如ID,名称,类名,链接文本,部分链接文本,标记名和XPATH。...建议网站开发人员避免使用非唯一ID或动态生成的ID,但是某些MVC框架(如– ADF)可能会导致页面具有动态生成的ID。...如果任何网站具有非唯一ID或具有动态生成的ID,则不能使用此策略唯一地查找元素,而是将返回与定位器匹配的第一个Web元素。我们将如何克服这种情况,将在XPATH / CSS选择器策略中进行说明。...按类别名称查找 此方法根据CLASS属性的值查找元素。更适用于查找具有针对它们定义的css类的多个元素。 句法: driver.findElements(通过。

    6.1K10

    Python爬虫Xpath库详解

    对于网页的节点来说,它可以定义 id、class 或其他属性。而且节点之间还有层次关系,在网页中可以通过 XPath 或 CSS 选择器来定位一个或多个节点。...如果要取出其中一个对象,可以直接用中括号加索引,如 [0]。 6. 子节点 我们通过 / 或 // 即可查找元素的子节点或子孙节点。...[@class="item-0"],限制了节点的 class 属性为 item-0,而 HTML 文本中符合条件的 li 节点有两个,所以结果应该返回两个匹配到的元素。....html">fifth item 其中一个节点因为自动修正,li 节点的尾标签添加的时候换行了,所以提取文本得到的唯一结果就是 li 节点的尾标签和 a 节点的尾标签之间的换行符。...这里我们使用 * 匹配,所以获取了所有后续同级节点。 以上是 XPath 轴的简单用法,更多轴的用法可以参考:XPath Axes(轴)。 15.

    26910

    学爬虫利器XPath,看这一篇就够了

    XPath的使用 XPath,全称 XML Path Language,即 XML 路径语言,它是一门在XML文档中查找信息的语言。...[@class="item-0"] 就限制了节点的 class 属性为 item-0,而 HTML 文本中符合条件的 li 节点有两个,所以返回结果应该返回两个匹配到的元素,结果如下: [fifth item 其中一个节点因为自动修正,li 节点的尾标签添加的时候换行了,所以提取文本得到的唯一结果就是 li 节点的尾标签和 a 节点的尾标签之间的换行符。...节点轴选择 XPath 提供了很多节点轴选择方法,英文叫做 XPath Axes,包括获取子元素、兄弟元素、父元素、祖先元素等等,在一定情况下使用它可以方便地完成节点的选择,我们用一个实例来感受一下:...第七次选择我们调用了 following-sibling 轴,可以获取当前节点之后的所有同级节点,这里我们使用的是 * 匹配,所以获取了所有后续同级节点。

    2.1K21

    python学习之xpath使用案例总结

    *:匹配任何元素节点 8,@*:匹配任何属性节点 9,node():匹配任何类型的节点 10,| :选取若干个路径 xpath谓语的用法: 谓语用来查找某个特定的节点或者包含某个指定的值的节点。...()的子节点最前面的两个div元素 //div[@id]:选取所有div包含id属性的元素 //div[@id=’kw’]:选取所有div包含id属性等于kw的元素 xpath 轴 在...:选取当前节点之前的所有同级节点 self:选取当前节点 用法: 轴名称::节点测试[谓语] child::div:所有属于当前节点的子元素的div节点 attribute::id:选取当前节点的id属性...的先辈元素以及当前节点(如果此节点为div节点的话) child::*/child::div:选取当前节点的所有div孙节点 xpath 运算符 | :计算两个节点集, 如://div | //span...(1) ''' xpath 运算符 | :计算两个节点集, 如://div | //span ,返回所有拥有div和span元素的节点集 + :加法,1+2 返回10 - :减法,2-1 返回1 *

    1.3K10
    领券