selenium节点(元素)遍历的疑惑

Selenium Xpath定位唯一文本元素 Selenium Xpath定位唯一文本元素 问题概述 现有一网页,已知唯一文本元素a,需要定位父级的同级元素b并抓取文本b.text,如何实现 给出案例 <tr title="本次发行的可转债向发行人在股权登记日(2021年12月24日,T-1日)收市后中国结算上海分公司登记在册的原股东优先配售,原股东优先配售后余额部分(含原股东放弃优先配售部分)采用网上通过上交所交易系统向社会公众投资者发售的方式进行,余额由保荐机构(主承销商)包销。" data-index="1"> <td st 阅读详情

一、节点遍历是什么

例如:
在这里插入图片描述
由于裁判文书网只显示前600个,我的思路就是通过关键词的限定实现内容在600条以内,因而完整的下载需要进行关键词的遍历
html:
在这里插入图片描述

二、问题

直接进行遍历会报错,原因不明
如:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

browser = webdriver.Firefox()

"""网页获取"""
browser.get('http://wenshu.court.gov.cn/website/wenshu/181217BMTKHNT2W0/index.html?pageId=0a8bea45ec529d8391dd57f1a421ae4e&s21=%E8%AE%A4%E7%BD%AA%E8%AE%A4%E7%BD%9A')
wait = WebDriverWait(browser,20)
"""进行内部遍历获取,通过关键字进行限定"""
for number in range(1,35):
	keywords = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="j3_%d_anchor"]'%number)))
	print(keywords)
	keywords.click()
	time.sleep(1)
	button = wait.until(EC.presence_of_element_located((By.XPATH, '//div[@class="LT_Filter_right clearfix"]/p[2]/i['
                                                              '@class="fa fa-close"]')))

	keywords.click()

每次都是第一个元素可以点击,但是接下来遍历的第二个元素都会报错,timeout,即超时
不是%d不能传入,因为第一个可以传入

三、解决方法

问题产生原因不明,解决原因也不明
思路,既然每次第二个元素超时,那就关闭浏览器,使得每次只点击的第一个元素;即点击一个元素关闭一次浏览器,然后重启浏览器。这样就需要每次启动浏览器传入需要遍历的值

def selenium(number):
"""尝试遍历"""
print()
browser = webdriver.Firefox()

"""网页获取"""
browser.get('http://wenshu.court.gov.cn/website/wenshu/181217BMTKHNT2W0/index.html?pageId=0a8bea45ec529d8391dd57f1a421ae4e&s21=%E8%AE%A4%E7%BD%AA%E8%AE%A4%E7%BD%9A')
wait = WebDriverWait(browser,20)
"""进行内部遍历获取,通过关键字进行限定"""

keywords = wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="j3_%d_anchor"]'%number)))
print(keywords)
keywords.click()
time.sleep(1)
browser.close()
for number in range(1,10):
	selenium(number)	

四、结语

问题虽然解决了,但是原理不明,并不是xpath语法不对,问题在于为什么浏览器只能点击第一个元素,清除后再次点击就会超时??????

python selenium网页表格、列表遍历方法 自动化录入EXCEL 阅读详情

相关推荐

Python Selenium递归遍历frame定位元素

递归遍历frame 经常用selenium定位元素时,定位方式试过,就是报找不到元素,然后发现元素在另一个frame里面,需要切换,多个frame的话,需要切来切去,十分不方便。这里封装一个方法findElement,可以递归遍历所有frame,一个个去找这个元素,直到找到为止,分享之。 # -*- coding:utf-8 -*- from selenium import webdr

baidu_32432903的博客 2907

python+selenium 使用for循环,遍历 定位 获取 单个元素中想要的值

python+selenium 使用for循环,遍历 定位 获取 单个元素中想要的值 1、HTML结构 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Ti...

夏已微凉、 2万+

关于如何使用 Selenide 实现网页内容提取,遍历列表并获取数据

Selenide 以其简洁的语法和强大的智能等待机制,为 Java 开发者提供了一种高效、便捷的方式来提取网页内容,特别是处理包含列表和动态加载数据的页面。通过open打开页面,$$定位列表项集合,然后在循环中针对每个列表项使用或find定位并提取具体数据,整个过程清晰且易于维护。文章告一段落。如果你意犹未尽,渴望持续提升技术实力、拓宽视野,欢迎关注同名微信公众号“码觉客”。我们致力于分享高质量的技术干货、实战经验和前沿资讯,助你在技术的道路上走得更远。即刻搜索关注,解锁更多精彩!

码觉客的博客 925

小笔记-简单但够用系列_selenium xpath 历遍元素踩坑记录

selenium 使用 xpath 获取以下的 h4 元素文本并进行历遍点击。 但xpath定位时一直只能定位到第一个元素内容,不能形成列表进行历遍。 xml 示例文件 ... <div id="floor-user-profile_485"> <h1> <h2> <h3> <h4>1</h4> </h3> <h3> <h4>2</h4> &l

迷途小羔羊--NYTWTYN的博客 863

REALTEK PKE8710ECF开发板入手试玩(一)

REALTEK PKE8710ECF开发板入手试玩

lbqhope的专栏 694

PCB工艺-SI9000-模型选择

本文介绍了PCB设计中常用的阻抗计算模型,主要包括外层、内层和嵌入式三类共12种计算模型,涵盖单端/差分、共面等不同场景。针对阻抗计算中的关键参数,文章提供了经验值参考:表层走线厚度0.035mm(1.4mil),内层0.0152mm(0.6mil);并列出常见PP材料的介电常数(3.8-4.5)和成品厚度(3-7.5mil)。作者建议90%的设计问题可通过上述模型解决,层叠参数建议咨询PCB厂家获取。

weixin_50120208的博客 1390

【selenium】遍历双下拉框元素,对每一种组合进行点击操作

先给出我要遍历的下拉框的样式 每一个cluster对应多个workspace,所以需要对两个下拉框同时进行遍历 代码如下 #找到下拉框元素 clBtn = driver.find_element_by_xpath( "//div[@id='root']/div[@class='App blue']/section[@class='ant-layout']/main...

J_Style的博客 1992

matlab安装libsvm常见问题

matlab安装libsvm常见问题 libsvm的官网链接:LIBSVM -- A Library for Support Vector Machines.

cqujcy的博客 1535

selenium浏览器中递归遍历某个节点

from selenium import webdriver def recursive_traversal_child(_e): _children = _e.find_elements_by_xpath('./child::*') if len(_children) == 0: print(_e.tag_name, _e.id) if (_e.tag_name == 'p'): print('\t文字:', _e.text) .

tumin999的专栏 1169

workbench 流固耦合_基于ANSYS 2019R1全解一款双吸泵的双向流固耦合方法

一、导读对于旋转机械来说,传统设计从理论计算到手工木模图,再到模型泵的加工制造,最后进行相关性能试验。当性能试验与预期效果差距较大的时候还需要修改水力模型。这种传统的设计不仅设计周期长,而且成本也高,在没有成熟的水力模型参考的情况下做设计风险也较大。而日益强大的CFD技术为旋转机械行业的发展提供了非常有力的工具。大量工程实践证明像CFX、Fluent以及Pumplinx等流产分析软件具有较高的计算...

weixin_39604280的博客 4761

HID设备开发避坑指南:如何利用Windows内置驱动快速实现USB键盘模拟

本文详细解析了HID设备开发中的免驱方案与USB键盘模拟技术,重点介绍了HID协议的核心优势、开发基础架构及Windows平台的实现方法。通过实战案例和代码示例,帮助开发者快速掌握USB键盘模拟技术,避免常见开发陷阱,提升设备兼容性和性能。

lambda的博客 683

Python爬虫——Selenium 定位节点及获取节点信息

当我们想要操作一个节点时,必须先找到这个节点,通过 Selenium 提供的定位节点的方法可以获取到想要的节点,获取节点后可以选择是执行下一步动作(如填充表单、模拟点击等)还是提取数据。Selenium 4 之前使用 find_element_by_*() 方法定位节点,Selenium 4之后使用 find_element()方法。如果要查找所有符合条件的标签,需要用 find_elements,find_elements 的返回值是列表类型,可以用for循环遍历里面的节点。......

万里顾一程的博客 6369

NSGA-III相关笔记

NSGA-III目录目的区别NSGA-III的算法流程非支配排序详解归一化详解 目录 NSGA-III基于matlab的实现 参考文献 1.An Evolutionary Many-Objective Optimization Algorithm Using Reference-point Based Non-dominated Sorting Approach,Part I: Solving P...

weixin_42555400的博客 1万+

Selenium(6):元素定位_xpath定位

driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径。driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径。driver_path = os.path.join(current_path,'../webdriver/chromedriver.exe') # driver路径。

奔跑在路上you的博客 1454

ncode控件使用总结

数据格式txt转s3t #HEADER #TITLES Absolute_Time,COG_Ax,COG_Ay,COG_Az,LF_SPINDLE_AZ #UNITS ,g,g,g,g, #DATATYPES Double,Float,Float,Float,Float #DATA 2. 导入s3t数据 3. 输入数据控件 直接拖入数据源或者添加控件数据 4.

技术联盟 2007

SAP UI5 控件剖析系列之 sap.m.DatePicker:单日选择的工程化用法、最佳实践与常见坑

在 SAP UI5 的输入控件族里,是最常被使用的日期选择控件。它把一个可编辑的输入框与一个弹出的日历整合在一起,允许用户用触摸、鼠标或键盘在本地化格式下选择某一天;控件既可以从弹出的日历里点选,也可以直接在输入框里键入日期。官方 Fiori 设计规范对它的定位就是:完成单个日期的选择,不牵涉时间,也不负责跨天的范围选择。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 345

java selenium一一操作定位元素

熟练使用java selenium操作定位元素,使用 WebDriver 时要学习的最基本的技术之一是如何查找页面上的元素。

若成风的博客 1727

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Selenium实战之Python+Selenium爬取京东商品数据

实战目标:爬取京东商品信息,包括商品的标题、链接、价格、评价数量。 代码核心在于这几个部分: 其一:使用元素定位来获取页面上指定需要抓取的关键字; 其二:将页面上定位得到的数据永久存储到本地文件中。 具体来梳理一下从访问URL开始到爬取数据整个流程下来的各个节点我们都做了哪些工作。 1、准备接口数据 # 京东商城网址 url = 'https://www.jd.com/' 2、创建浏览器实例对象 # driver = webdriver.Firefox() # 创建 Firefox 浏览器实

Jane 8229

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

selenium web元素定位

xpath定位 定义 XML Path Language,XML路径语言,用来确定XML文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。XPath定位比较慢,原因是XPath是从头到尾遍历。 语法 表达式 语法 /bookstore/book[1] 选取属于 bookstore 子元素的第一个 book 元素。 /bookstore/book[last()] 选取属于 bookstore 子元素的最后一个 book 元素。 /bookstor

weixin_42940480的博客 184

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

selenium原理及8大元素定位方法,一篇足矣

Selenium原理及8大元素定位方式,一篇足矣

m0_57098592的博客 2391

Python中 BeautifulSoup和Selenium 定位元素和获取元素值的方法

更适合用于静态页面的解析和数据提取,简单、快速。Selenium适用于处理动态页面,能够模拟用户行为,但相对较慢。根据你的需求选择合适的工具和方法即可!

Gochan_Tao的博客 1624

selenium定位到元素后获取其属性_selenium定位tr及td,并获取其文本及属性

#获取所有的trtrlist=brower.find_elements_by_tag_name("tr")for tr in trlist:#获取tr中的所有tdtdlist=tr.find_elements_by_tag_name("td")if len(tdlist)>0:#获取td[0]的文本text=tr.find_elements_by_tag_name("td")[0].text...

weixin_35219046的博客 4066

selenium XPath定位详解

XPath 使用路径表达式来遍历 XML 树,并且支持多种功能,如节点选取、字符串匹配、数值计算、逻辑运算等,可以帮助用户准确定位到文档中所需的节点或内容。XPath 的语法类似于文件系统路径,通过使用斜杠(/)、双斜杠(//)、方括号([])等符号来描述节点之间的层次关系和属性条件,从而实现对 XML 结构的灵活查询和筛选。XPath 在 XML 数据处理、Web 抓取、XSLT 转换等领域广泛应用,为处理和操作 XML 数据提供了强大的工具和方法。获取first item文本。

itxnk的博客 2765

Selenium 自动化 —— 一篇文章彻底搞懂XPath

如何定位一个XML(尤其是HTML)中的一个节点?前文我们学习了Selenium的常用的几种选择器,相比其它几种比较简单的比如id选择器、name选择器等外,最强大也是我们使用最频繁的是xpath选择器。本文,我们就对xpath进行全面的学习。

postnull的博客 3280

解决iframe对selenium定位元素的干扰问题

解决iframe对selenium定位元素的干扰问题场景还原解决思路 场景还原 我们在通过selenium的find_element方法定位页面元素的时候会发现一个问题,我的定位条件没有问题,定位元素也是非隐藏元素,可代码执行时总提示Message: no such element: Unable to locate element,百思不得其解时,最后发现元素嵌套在了iframe当中,无法直接定位。 这个时候我们通常的解决办法就是,查看元素所在的iframe,然后调用selenium的switch_to

qq_40788412的博客 698

已获取当前元素,获取元素父节点的方法

1. 已获取当前元素,获取元素父节点的方法WebElement unDisplayedEle=this.GetElement(By.xpath("//a[@href='"+aLst.get(index).getAttribute("href")+"']"));//当前元素 WebElement parentEle=unDisplayedEle.findElement(By.xpath("./.

lgh75560的博客 3511
上一篇: 中国裁判文书下载:selenium路线
下一篇: 《Python机器学习基础教程》1.7.3笔记
python__reported
博客等级 码龄7年 249粉丝 141原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值