简单的Xpath定位

这篇具有很好参考价值的文章主要介绍了简单的Xpath定位。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

网页F12直接copy就不说了,讲讲其他的一些方法。

串联查找//示例HTML:

<!DOCTYPE html>
<html lang="en">
<head>
		<meta charset="utf-8">
		<title>Title</title>
</head>
<body>
		<div id="A">
		<div id="B">
			<div>parent to child</div>
		</div>
		  </div>
</body>
</html>

先定位一个元素,再在其基础上定位一个元素。示例代码:

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
import os

Chrome_driver = webdriver.Chrome()
Chrome_driver.maximize_window()



html_file = os.getcwd()+os.sep+"myhtml5_2.html"
Chrome_driver.get(html_file)
#以下为串联查找
mytext = Chrome_driver.find_element(By.ID,"B").find_element(By.TAG_NAME,"div").text
print(mytext)
Chrome_driver.quit()

通过父元素定位子元素//示例代码:

mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="B"]/div').text
print(mytext)
Chrome_driver.quit()

Xpath轴:

具体使用方法示例为:child::div,即轴名称::标签名,,挑下图一些用实例进行分析

by.xpath寻找下一个元素,html,javascript,python,selenium,爬虫

 1.借用Xpath轴,通过父元素定位子元素child

mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="B"]/child::div').text
print(mytext)
Chrome_driver.quit()

by.xpath寻找下一个元素,html,javascript,python,selenium,爬虫

 

2.由子元素定位父元素myhtml5_3.html

<!DOCTYPE html>
<html  lang="en">
<head>
	<meta charset="utf-8"/>
	<title>Title</title>
	
</head>
<body>
	<div id="A">
	<!--子元素定位父元素-->
	<div>
		<div>child to parent
			<div>
				<div id="C"></div>
			</div>
			
		</div>
		
	</div>
	</div>
</body>
</html>
# 由子元素定位父元素
html_file = os.getcwd()+os.sep+"myhtml5_3.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="C"]/../..').text
print(mytext)
Chrome_driver.quit()

Xpath轴:parent

html_file = os.getcwd()+os.sep+"myhtml5_3.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="C"]/parent::div/parent::div').text
print(mytext)
Chrome_driver.quit()

3.通过兄弟元素定位

<!DOCTYPE html>
<html  lang="en">
<head>
	<meta charset="utf-8"/>
	<title>Title</title>

</head>
<body>
	<!--下面两个元素用于兄弟元素定位-->
	<div>brother 1</div>
	<div id="D"></div>
	 <div>brother 2</div>
</body>
</html>

Xpath通过父元素定位brother 1

html_file = os.getcwd()+os.sep+"myhtml5_4.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="D"]/../div[1]').text
print(mytext)
Chrome_driver.quit()

Xpath

串联查找//示例HTML:myhtml5_2.html

<!DOCTYPE html>
<html lang="en">
<head>
		<meta charset="utf-8">
		<title>Title</title>
</head>
<body>
		<div id="A">
		<div id="B">
			<div>parent to child</div>
		</div>
		  </div>
</body>
</html>

先定位一个元素,再在其基础上定位一个元素。

from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By
import os

Chrome_driver = webdriver.Chrome()
Chrome_driver.maximize_window()

html_file = os.getcwd()+os.sep+"myhtml5_2.html"
Chrome_driver.get(html_file)
#以下为串联查找
mytext = Chrome_driver.find_element(By.ID,"B").find_element(By.TAG_NAME,"div").text
print(mytext)
Chrome_driver.quit()

通过父元素定位子元素//示例HTML:myhtml5_2.html

mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="B"]/div').text
print(mytext)
Chrome_driver.quit()

Xpath轴:

具体使用方法示例为:child::div,即轴名称::标签名,,挑下图一些用实例进行分析

1.借用Xpath轴,通过父元素定位子元素 child

mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="B"]/child::div').text
print(mytext)
Chrome_driver.quit()

by.xpath寻找下一个元素,html,javascript,python,selenium,爬虫

 

2.由子元素定位父元素myhtml5_3.html

<!DOCTYPE html>
<html  lang="en">
<head>
	<meta charset="utf-8"/>
	<title>Title</title>
	
</head>
<body>
	<div id="A">
	<!--子元素定位父元素-->
	<div>
		<div>child to parent
			<div>
				<div id="C"></div>
			</div>
			
		</div>
		
	</div>
	</div>
</body>
</html>

Xpath:

# 由子元素定位父元素
html_file = os.getcwd()+os.sep+"myhtml5_3.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="C"]/../..').text
print(mytext)
Chrome_driver.quit()

Xpath轴:parent

html_file = os.getcwd()+os.sep+"myhtml5_3.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="C"]/parent::div/parent::div').text
print(mytext)
Chrome_driver.quit()

3.通过兄弟元素定位

<!DOCTYPE html>
<html  lang="en">
<head>
	<meta charset="utf-8"/>
	<title>Title</title>

</head>
<body>
	<!--下面两个元素用于兄弟元素定位-->
	<div>brother 1</div>
	<div id="D"></div>
	 <div>brother 2</div>
</body>
</html>

Xpath通过父元素定位brother 1

html_file = os.getcwd()+os.sep+"myhtml5_4.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="D"]/../div[1]').text
print(mytext)
Chrome_driver.quit()

Xpath轴定位 preceding-sibling文章来源地址https://www.toymoban.com/news/detail-835421.html

html_file = os.getcwd()+os.sep+"myhtml5_4.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="D"]/preceding-sibling::div[1]').text
print(mytext)
Chrome_driver.quit()

Xpath通过哥哥元素定位弟弟元素

html_file = os.getcwd()+os.sep+"myhtml5_4.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="D"]/../div[3]').text
print(mytext)
Chrome_driver.quit()

Xpath轴 fllowing-sibling

html_file = os.getcwd()+os.sep+"myhtml5_4.html"
Chrome_driver.get(html_file)
mytext = Chrome_driver.find_element(By.XPATH,'//div[@id="D"]/following::div[1]').text
print(mytext)
Chrome_driver.quit()

到了这里,关于简单的Xpath定位的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • selenium通过xpath定位元素报错?

    1.xpath介绍 XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。而html中也应用了这种语言 ,所以 ,我们定位html页面元素时也会用到xpath这种方法 。 2.xpath定位方式 xpath主要通过以下四种方法定位 : 路径定位 属性定位 多属性定位 路径

    2024年04月09日
    浏览(38)
  • selenium:元素定位之xpath、css

    元素定位是在做UI自动化测试中最重要的一环,要牢牢掌握定位的方法,才能更有效率的进行UI自动化测试。 常见的元素定位方式: id name tag_name class_name link_text partial_link_text xpath css 其中id,name是具有唯一性的,所以定位起来比较简单,直接使用即可 在UI自动化测试中,xpa

    2024年02月09日
    浏览(39)
  • Xpath元素定位之同级节点,父节点,子节点

    XPath学习:轴(8)——following-sibling XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。 XPath 是 W3C XSLT 标准的主要元素,并且 XQuery 和 XPointer 同时被构建于 XPath 表达之上。 推荐一个挺不错的网站:http://www.zvon.org/xxl/XPathTutorial/General_chi/ex

    2024年02月06日
    浏览(29)
  • selenium通过xpath定位text换行的元素

    DOM元素(该元素是换行的,不能通过普通xpath定位):  可使用下面xpath定位该div 解释一下就是:定位“ 子节点的text是[5] 且 子节点弟弟的text是[点] ”的div

    2024年02月11日
    浏览(48)
  • Xpath中定位到多个相同的元素,该怎么去解决?

    如图所示,定位到了6个相同的元素,业务需要每个元素都要进行输入操作; 我的解决方法: 可以通过find_elements来找到定位列表,在得到的list列表后加上索引值来进行输入 driver.find_elements(By.XPATH,‘//input[@class=“el-input__inner”]’)[0].send_keys(“0824”)

    2024年02月16日
    浏览(32)
  • Selenium定位元素的方法css和xpath的区别!

    selenium是一种自动化测试工具,它可以通过不同的定位方式来识别网页上的元素,如id、name、class、tag、link text、partial link text、css和xpath。 css和xpath是两种常用的定位方式,它们都可以通过元素的属性或者层级关系来定位元素,但是它们也有一些区别: css: css是级联样式表,

    2024年02月04日
    浏览(43)
  • 简单的Xpath定位

    网页F12直接copy就不说了,讲讲其他的一些方法。 串联查找 //示例HTML: 先定位一个元素,再在其基础上定位一个元素。示例代码: 通过父元素定位子元素 //示例代码: 具体使用方法示例为:child::div,即轴名称::标签名,,挑下图一些用实例进行分析 Xpath通过父元素定位bro

    2024年02月22日
    浏览(19)
  • xpath 如何通过xpath选取class一个或多个属性定位

    目录 1、通过定位一个class方式 2、通过定位两个class方式 3、不包含某个 4、组合 5、or 6、如果目标 class 不一定是第一个 div class=\\\'aaaa bbbb\\\'春天的菠菜/div  #它会取得所有class为aaaa的元素 #它会取class同时有aaaa和bbbb的元素

    2024年02月16日
    浏览(33)
  • 【selenium】八大元素定位方式|xpath css id name...

    目录 一、基础元素定位 二、cssSelector元素定位——通过元素属性定位 三、xpath元素定位——通过路径  1 、xpath绝对定位 (用的不多) 缺点:一旦页面结构发生变化(比如重新设计时,路径少两节),该路径也随之失效,必须重新写 2、 xpath相对定位 2.1  路径解释: 2.2  定

    2024年02月22日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包