selenium XPATH定位浏览器元素方法


一、环境安装

下载第三方库 -> selenium(这里我使用CMD终端进行下载)
1.找到当前脚本所在的目录下(我是在D:\xiangmu\Web crawler)
2.打开CMD窗口输入 pip install 第三方库名 -i 镜像网址
[这里提供阿里云的PyPI镜像网址:https://mirrors.aliyun.com/pypi/simple]
3.下载完成后可以继续输入命令 pip list 查看目录下是否有刚下载的第三方包名

二、使用步骤

1.引入库

代码如下(示例):

from selenium import webdriver
from selenium.webdriver.common.by import By

2.打开浏览器,并到达指定网址

这里我使用的是谷歌浏览器(Google)

dr = webdriver.Chrome()
dr.maximize_window()#将浏览器窗口最大化
dr.minimize_window()#将浏览器最小化
dr.get(‘https://www.dongchedi.com/)#到达你需要的网址这里拿懂车帝的网址作为使用例
time.sleep(1)#这里最好导入一下{import time}库来进行等待让网站加载

3.获取元素信息进行元素定位

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/3efa99fad8b94c788d1df4b87a2f8b1c.png
这里用的谷歌浏览器
点击F12再带年纪箭头所指的按键再将鼠标放到你要获取的元素上【这里用输入框举例】
在这里插入图片描述
输入框的信息就被展现出来了,通过查看我们所得出的是
【//div[@id=‘__next’]/header/div/div/div/input】

4.获取元素定位方法以及点击,获取,输入

获取元素定位可以用标签顺序,标签信息【列如:ID,class】,以及文本定位三种方法相辅相成

标签定位

根据标签的排位顺序来定位
在这里插入图片描述

我们来根据三种方法来获取这个button的路径,然后使用find_element定位
dr.find_element(By.XPATH, “//div[@id=‘__next’]/header/div/div/div/button[text()=‘搜索’]”)

点击,获取,输入

当拿到正确的路径后dr.find_element(By.XPATH, “//div[@id=‘__next’]/header/div/div/div/button[text()=‘搜索’]”)在后面加上
点击【.click()】
获取【.get_attribute(‘获取的标签名字例如:id,class,href’)】
输入【.send_keys(‘你要输入的内容’)】

frame标签处理

当有frame标签时需要使用他的id来进行切换,要不然不能取到frame标签下的内容
dr.switch_to.frame(“frame_id”)

页面切换

当有通过点击等操作来打开一个新页面的时候要切换页面要不然代码无法识别

windows = dr.window_handles#按照自己起的名字修改
dr.switch_to.window(windows[0])#默认是0
time.sleep(1)#切换后等待一秒

5.获取和理解父级,子级,同级

在这里插入图片描述

 /a/li/following-sibling::*/a/li节点的之后的所有同级节点
  //a/following-sibling::*    选取所有a元素的之后所有同级节点

child 选取当前节点的所有子元素
parent 选取当前节点的父节点
descendant 选取当前节点的所有后代元素(子、孙等)
ancestor 选取当前节点的所有先辈(父、祖父等)
descendant-or-self 选取当前节点的所有后代元素(子、孙等)以及当前节点本身
ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身
preceding-sibling 选取当前节点之前的所有同级节点
following-sibling 选取当前节点之后的所有同级节点
preceding 选取文档中当前节点的开始标签之前的所有节点
following 选取文档中当前节点的结束标签之后的所有节点

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值