Python + selenium —— xpath定位方法详解!
创始人
2024-11-04 17:08:43
0

前言

今天我们来聊聊selenium —xpath定位方法,我们都知道selenium有八大定位策略分别是id、name、class name、tag name、link text、partial link text、xpath、css 。那么我们今天呢主要来讲讲八大定位策略中的xpath的定位方法,废话不多说我们直接开始吧。

一、xpath基本定位用法

  1.1 使用id定位 -- driver.find_element_by_xpath('//input[@id="kw"]')

  1.2 使用class定位 -- driver.find_element_by_xpath('//input[@class="s_ipt"]')

 1.3 当然 通过常用的8种方式结合xpath均可以定位(name、tag_name、link_text、partial_link_text)以上只列举了2种常用方式哦。

二、xpath相对路径/绝对路径定位

  2.1 相对定位 -- 以// 开头 如://form//input[@name="phone"]

 2.2 绝对定位 -- 以/ 开头,但是要从根目录开始,比较繁琐,一般不建议使用 如:/html/body/div/a 

现在我也找了很多测试的朋友,做了一个分享技术的交流群,共享了很多我们收集的技术文档和视频教程。 如果你不想再体验自学时找不到资源,没人解答问题,坚持几天便放弃的感受 可以加入我们一起交流。而且还有很多在自动化,性能,安全,测试开发等等方面有一定建树的技术大牛 分享他们的经验,还会分享很多直播讲座和技术沙龙 可以免费学习!划重点!开源的!!! qq群号:691998057【暗号:csdn999】

三、xpath文本、模糊、逻辑定位

  3.1【文本定位】使用text()元素的text内容 如://button[text()="登录"]

  3.2 【模糊定位】使用contains() 包含函数 如://button[contains(text(),"登录")]、//button[contains(@class,"btn")] 除了contains不是=等于 多用于display属性

 3.3 【模糊定位】使用starts-with -- 匹配以xx开头的属性值;ends-with -- 匹配以xx结尾的属性值 如://button[starts-with(@class,"btn")]、//input[ends-with(@class,"-special")]

  3.4 使用逻辑运算符 -- and、or;如://input[@name="phone" and @datatype="m"]

四、xpath轴定位

  4.1 轴运算

  ancestor:祖先节点 包括父
  parent:父节点
  preceding-sibling:当前元素节点标签之前的所有兄弟节点
  preceding:当前元素节点标签之前的所有节点

  following-sibling:当前元素节点标签之后的所有兄弟节点

  following:当前元素节点标签之后的所有节点

  使用语法: 轴名称 :: 节点名称

  使用较多场景:页面显示为一个表格样式的数据列

  如:

注意:

#定位 找到元素 -- 做到唯一识别 #优先使用id #舍弃:有下标的出现、有绝对定位的出现、id动态变化时舍弃
from selenium import webdriver import time from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC  from selenium.webdriver.common.by import By  driver = webdriver.Chrome()  driver.get("https://www.baidu.com/")  driver.maximize_window()  time.sleep(3)  # 定位百度搜索框  driver.find_element_by_id("kw").send_keys("python")  time.sleep(3)  driver.find_element_by_id("su").click()  time.sleep(5)  # 找到这个元素  ele = driver.find_element_by_xpath('//a[text()="_百度百科"]')  # 拖动元素到可见区域--scrollIntoView() 拉到顶部显示,有可能会被导航栏遮挡,定位不到而报错;scrollIntoView(false)可视区域底部对齐  driver.execute_script("arguments[0].scrollIntoView(false);", ele)  time.sleep(5)  driver.quit()

定位后的常见操作

get(url) 打开网页

send_keys(str) 输入

click() 点击

clear() 清空

text 获取标签文本内容

get_attribute('属性') 获取元素属性值

close() 关闭当前标签页

quit() 关闭浏览器,释放进程

FAQ

  1. 脚本结束如果没有调用quit()方法,chromedriver进程会在后台继续运行。大概占用4M空间。如果创建多了不关,会导致电脑卡。

__import__('os').system("taskkill /f /t /im chromedriver.exe")

好了今天的分享就到这里了,喜欢的可以点赞评论加关注,关注我每天给你们带来不同的惊喜。

下面是配套资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

最后: 可以在公众号:程序员小濠 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

相关内容

热门资讯

科普!微信金花房卡充值购买,微... 微信游戏中心:牛牛房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信牛牛房卡”...
秒懂教程“正版金花房卡批发渠道... 新九哥牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡...
正规平台有哪些,金花房卡专卖店... 正规平台有哪些,金花房卡专卖店人皇大厅/正规房卡找谁买Sa9Ix苹果iPhone 17手机即将进入量...
推荐一款!牛牛充值房卡卡丁互娱... 您好!微信卡丁互娱大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(卡丁互娱)大厅介绍:...
终于知道”新漫游房卡获取“先锋... 房卡获取是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:113857776许多玩家在游戏中会购买房卡...
科普!有没有炸金花房卡一张多少... 微信游戏中心:炸金花房卡,添加微信【8488009】,进入游戏中心或相关小程序,搜索“微信炸金花房卡...
终于知道”圣游房卡获取方式“新... 终于知道”圣游房卡获取方式“新猴王大厅房间卡怎么购买游戏中心打开微信,添加客服【113857776】...
牛牛链接房卡在哪里弄/微信金花... 牛牛是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:86909166许多玩家在游戏中会购买房卡来享受...
科技实测!金花房卡怎么购买玄龙... 微信游戏中心:玄龙大厅房卡在哪里买打开微信,添加客服微信【88355042】,进入游戏中心或相关小程...
正规平台有哪些,如何购买金花房... 新天王/老夫子大厅是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:【3329006910】或QQ:3...
科普!微信开炸金花房卡怎么买,... 微信游戏中心:炸金花房卡,添加微信【55051770】,进入游戏中心或相关小程序,搜索“微信炸金花房...
终于知道”黑桃A哪里买低价获取... 第二也可以在游戏内商城:在游戏界面中找到 “微信金花,斗牛链接房卡”“商城”选项,选择房卡的购买选项...
推荐一款!牛牛房卡制作链接烛龙... 您好!微信烛龙大厅大厅链接获取房卡可以通过以下几种方式购买: 1.微信渠道:(烛龙大厅)大厅介绍:...
正规平台有哪些,金花房卡专卖店... 今 日消息,神龙大厅房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...
一分钟了解!金花房卡批发生肖系... 生肖系列/新大圣房卡更多详情添加微:33549083、 2、在商城页面中选择房卡选项。 ...
链接金花房卡哪里买/微信金花链... 金花是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:44346008许多玩家在游戏中会购买房卡来享受...
终于知道”新澳娱怎么买房卡“新... 怎么买房卡是一款非常受欢迎的棋牌游戏,咨询房/卡添加微信:113857776许多玩家在游戏中会购买房...
科普!微信如何创建金花房间链接... 微信游戏中心:牌九房卡,添加微信【33903369】,进入游戏中心或相关小程序,搜索“微信牌九房卡”...
科技实测!斗牛房间怎么创建的天... 科技实测!斗牛房间怎么创建的天道联盟/随意玩/微信链接房卡充值链接Sa9Ix苹果iPhone 17手...
玩家攻略,金花房卡怎么购买飞鹰... 今 日消息,飞鹰互娱房卡添加微信33549083 苹果今日发布了 iOS 16.1 正式版更新,简单...