python selenium使用xpath定位

以上是普通的情况,存在可以定位的属性,当某个元素的各个属性及其组合都不足以定位时,我们可以利用其兄弟节点或者父节点等各种可以定位的元素进行定位,先看看xpath中支持的方法:

、child 选取当前节点的所有子元素

、parent 选取当前节点的父节点

、descendant选取当前节点的所有后代元素(子、孙等)

、ancestor 选取当前节点的所有先辈(父、祖父等)

、descendant-or-self选取当前节点的所有后代元素(子、孙等)以及当前节点本身

、ancestor-or-self 选取当前节点的所有先辈(父、祖父等)以及当前节点本身

、preceding-sibling选取当前节点之前的所有同级节点

、following-sibling选取当前节点之后的所有同级节点

、preceding 选取文档中当前节点的开始标签之前的所有节点

、following 选取文档中当前节点的结束标签之后的所有节点

、self 选取当前节点

、attribute 选取当前节点的所有属性

、namespace选取当前节点的所有命名空间节点

python selenium使用xpath定位
from selenium import webdriver
driver = webdriver.PhantomJS()
driver.get("https://www.readnovel.com/free/all?pageNum=1&pageSize=10&gender=1&catId=20001&isFinish=1&isVip=1&size=-1&updT=-1&orderBy=0")

# getPage_text = driver.find_element_by_class_name('lbf-pagination-item-list').find_element_by_xpath("li/a[@class='lbf-pagination-next ']").get_attribute("innerHTML")
# 打印 >

# getPage_text = driver.find_element_by_class_name('lbf-pagination-item-list').find_element_by_xpath("li/a[@class='lbf-pagination-next ']/parent::li[1]").get_attribute("innerHTML")
# 打印 <a href="javascript:;" class="lbf-pagination-next ">>a>

getPage_text = driver.find_element_by_class_name('lbf-pagination-item-list').find_element_by_xpath("li/a[@class='lbf-pagination-next ']/parent::li[1]/preceding-sibling::li[1]").get_attribute("innerHTML")
# 打印 <a data-page="108" href="javascript:;" class="lbf-pagination-page ">108a>

getPage_text = driver.find_element_by_class_name('lbf-pagination-item-list').find_element_by_xpath("li/a[@class='lbf-pagination-next ']/parent::li[1]/preceding-sibling::li[1]/descendant::a[1]").get_attribute("innerHTML")
print(getPage_text) # 打印 108

Original: https://blog.51cto.com/u_12320710/5512240
Author: sb14188
Title: python selenium使用xpath定位

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/504882/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 使用GitHub Actions实现自动化部署

    前言 大家在工作中想必都是通过自动化部署来进行前端项目的部署的,也就是我们在开发完某个需求时,我们只需要将代码推送到某个分支,然后就能自动完成部署,我们一般不用关心项目是如何bui…

    Python 2023年10月16日
    0106
  • python全站爬虫_python基于scrapy实现简书全站爬虫

    Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中。 其最初是为了页面抓取 (更确切来说, 网络抓取…

    Python 2023年10月5日
    059
  • 基于 Apache Hudi + Presto + AWS S3 构建开放Lakehouse

    认识Lakehouse 数据仓库被认为是对结构化数据执行分析的标准,但它不能处理非结构化数据。 包括诸如文本、图像、音频、视频和其他格式的信息。 此外机器学习和人工智能在业务的各个…

    Python 2023年10月21日
    087
  • 第五章 数据聚合与分组运算

    1.分组是指使用特定的条件将原数据划分为多个组,聚合在这里指的是,对每个分组中的数据执行某些操作,最后将计算的结果进行整合。 分组步骤: 拆分 :将数据集按照一些标准拆分为若干个组…

    Python 2023年8月21日
    0109
  • 配置pygame环境

    配置pygame环境 pygame是什么? 配置pygame环境 * 1.检查计算机信息 2.配置python环境 3.安装pygame 那些人不建议学习pygame pygame…

    Python 2023年9月21日
    0114
  • pytest基础知识

    介绍 Pytest是当前主流的自动化测试框架,主要特点有如下几点: 1.简单灵活,容易上手; 2.支持参数化; 3.能够支持简单的单元测试和复杂的功能测试,还可以用来做seleni…

    Python 2023年9月13日
    0112
  • Pandas 数据结构之 DataFrame使用教程

    Pandas 数据结构 DataFrame 简介 DataFrame 实例化 行数据的选择 * 1.按位置选择行数据(单行选择) 2.按位置选择行数据(多行选择:类似于切片) 3….

    Python 2023年8月17日
    091
  • 个人信用风险评估项目

    个人信用风险评估项目 一、读取并了解基本信息 1.读取数据集 首先,我们需要读取数据。并查看数据的前5行信息。查看数据可以了解各个字段取值的具体情况,字段的名称等等,对数据有一个基…

    Python 2023年8月2日
    086
  • Numpy基础

    浅学了一点numpy,努力向机器学习方向学习!听了慕课老师的课总结一下,如有不对,请大佬指正! import numpy numpy.__version__ import nump…

    Python 2023年8月26日
    067
  • 在CPU上跑yolov5(详细步骤+适合入门)

    目录 一、创建新环境 二、导入Pytorch库 三、新建项目 四、测试 五、准备数据集 六、修改配置文件 七、训练 八、实例测试 九、结束语 默认大家都装好了Anaconda和Py…

    Python 2023年7月31日
    0118
  • Python流行的轻量级web框架-Flask

    Web开发大致分为两个方面-客户端(Frontend)和服务器端(Backend)。每当我们在浏览器中输入任何网站的URL时,浏览器就会向服务器发出请求,服务器确认该请求并提供网站…

    Python 2023年8月14日
    0108
  • 将图片进行分割,并识别其bgr

    #导入numpy库和opencv库 import numpy as np import cv2 #读取图片,并对图片进行分割有效区域 img = cv2.imread("…

    Python 2023年8月27日
    059
  • scrapy框架

    参考资料:https://blog.csdn.net/qq_37758925/article/details/108607592https://blog.csdn.net/weix…

    Python 2023年10月4日
    078
  • Python 中 base64 编码与解码

    base64 是经常使用的一种加密方式,在 Python 中有专门的库支持。 本文主要介绍在 Python2 和 Python3 中的使用区别: 在 Python2 环境: Pyt…

    Python 2023年11月9日
    079
  • Teams app LukcyDraw 的升级之路

    我已经有很长一段时间没有更新我的 Teams App:LuckyDraw 了,有很多用户反馈给我,因为快到圣诞,新年和春节了,很多公司都开始要使用LuckyDraw来搞抽奖活动,希…

    Python 2023年9月17日
    055
  • YOLOv5的输出端(Head)详解|CSDN创作打卡

    深度学习入门小菜鸟,希望像做笔记记录自己学的东西,也希望能帮助到同样入门的人,更希望大佬们帮忙纠错啦~侵权立删。 注:因为有些朋友喜欢的是逐句逐句的看代码解析,所以我整理了两份,一…

    Python 2023年9月28日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球