首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

XPath find_elements_by_xpath()返回空列表,但XPath助手扩展显示结果

XPath find_elements_by_xpath()返回空列表,但XPath助手扩展显示结果。

XPath是一种用于在XML和HTML文档中定位元素的语言。find_elements_by_xpath()是Selenium库中的一个方法,用于通过XPath表达式在网页中查找元素。当使用find_elements_by_xpath()方法时,如果返回的是空列表,意味着没有找到匹配的元素。

可能导致find_elements_by_xpath()返回空列表的原因有以下几种:

  1. XPath表达式错误:首先需要检查使用的XPath表达式是否正确。XPath表达式应该准确地匹配到所需的元素。可以使用XPath助手扩展来验证XPath表达式是否能够正确地定位到元素。
  2. 元素加载延迟:如果网页中的元素是通过JavaScript动态加载的,那么在调用find_elements_by_xpath()方法时,可能会出现元素尚未完全加载的情况。可以尝试使用适当的等待机制,例如显式等待,以确保元素已经加载完毕。
  3. 元素不存在:另一个可能的原因是所查找的元素在页面中根本不存在。可以通过检查页面源代码或使用开发者工具来确认元素是否存在。
  4. 网页框架/iframe:如果所需元素位于网页的框架或iframe中,需要先切换到相应的框架或iframe,然后再执行find_elements_by_xpath()方法。

综上所述,当XPath find_elements_by_xpath()返回空列表时,可以通过检查XPath表达式的准确性、等待元素加载、确认元素是否存在以及切换到正确的框架/iframe来解决问题。

腾讯云相关产品和产品介绍链接地址:

  • 腾讯云官网:https://cloud.tencent.com/
  • 云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 人工智能平台(AI Lab):https://cloud.tencent.com/product/ailab
  • 云存储(COS):https://cloud.tencent.com/product/cos
  • 区块链服务(TBC):https://cloud.tencent.com/product/tbc
  • 物联网开发平台(IoT Explorer):https://cloud.tencent.com/product/iothub
  • 移动推送服务(信鸽):https://cloud.tencent.com/product/tpns
  • 视频直播(CSS):https://cloud.tencent.com/product/css
  • 音视频处理(VOD):https://cloud.tencent.com/product/vod
  • 云原生应用引擎(TKE):https://cloud.tencent.com/product/tke
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

读者投稿:selenium抓取bilibili拜年祭《千里之外》的评论

(实际上伪造非常简单,但是从json串里提取结果很麻烦,远没有直接从网页的xpath提取简单,见 ajax_get_comment方法。...或 find_elements_by_xpath等: def wait_until(self, parent, xpath, find_method): driver = parent or self.driver...页数据都抓取了下来,完整代码如下,你会发现我对其中的几个函数用了 retry装饰器,通过重复增加成功率,抓取的数据我放在一个字典里 self.comments,字典的key是页数,字典的值是一个存储该页评论的列表...OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 """ FIND_ELEMENTS_BY_XPATH...= 'find_elements_by_xpath' FIND_ELEMENT_BY_XPATH = 'find_element_by_xpath' TIME_OUT = 50

69520

Selenium之页面元素定位

提供了八种页面元素定位的方法,下面来依次为大家介绍一下: id定位: find_element_by_id("") HTML页面规定了id属性在HTML文档中必须是唯一的(页面id不唯一时,在编辑器中会标红显示...full xpath,然后粘贴即可 copy xpath:会根据工具智能的复制出精简的xpath路径, copy full xpath:复制的是全路径的绝对地址定位元素,这2种方式复制出来的路径并不能保证...find_element(),find_elements() find_element()会返回一个WebElement节点对象,但是没找到会报错,而find_elements()不会,之后返回一个空列表...2.查找多个元素的时候:只能用find_elements(),返回一个列表,列表里的元素全是WebElement节点对象 3.如果想要获取元素相关内容,find_element()可直接获取,find_elements...find_elements_by_class_name() find_elements_by_tag_name() find_elements_by_link_text() find_elements_by_partial_link_text() find_elements_by_xpath

3.4K20
  • JMeter函数和变量11

    通过在菜单 “选项” -> "函数助手对话框" 即可打开函数助手。 ? 通过函数助手,我们可以快速的填充对应的参数来生成我们所需要的函数。...看下请求结果: ? 函数列表 下面我们看下jmeter提供的所有内置函数的功能说明及使用示例。 总计七大类型。...3 machineIP 获取本机的IP地址 4 machineName 获取本机的名称 5 time 返回指定格式的当前时间 6 log 日志输出,并返回它的输入字符串 7 logn 日志输出,并返回空字符串...2 V 执行变量名表达式并返回结果 3 eval 执行字符串表达式,并返回结果 4 evalVar 执行保存在变量中的表达式,并返回结果 字符串类 用于字符串操作 序号 函数名 描述 1 regexFunction...将字符串编码为Application/x-www-form-urlencoded格式 10 TestPlanName 获取当前测试计划名称 必须掌握的函数 在上述内容中,并没有把所有的函数都一一列出来,基本把个大类中主要的函数都已列出

    2.3K60

    Python爬虫之数据提取-lxml模块

    如果是linux或macOS操作系统,无需操作上述的步骤2,直接将crx文件拖入已经开启开发者模式的chrome浏览器扩展程序界面 ---- 知识点:了解 谷歌浏览器xpath helper插件的安装和使用...语法-选取节点以及提取属性或文本内容的语法 ---- 5. xpath语法-节点修饰语法 可以根据标签的属性值、下标等来获取特定的节点 5.1 节点修饰语法 路径表达式 结果 //title[@lang...的方法,返回结果列表 html = etree.HTML(text) ret_list = html.xpath("xpath语法规则字符串") xpath方法返回列表的三种情况 返回空列表...:根据xpath语法规则字符串,没有定位到任何元素 返回由字符串构成的列表xpath字符串规则匹配的一定是文本内容或某属性的值 返回由Element对象构成的列表xpath规则字符串匹配的是标签,列表中的...title的列表 href_list = html.xpath("//li[@class='item-1']/a/@href") title_list = html.xpath("//li[@class

    2K20

    Python爬虫入门教程 58-100 python爬虫高级技术之验证码篇4-极验证识别技术之一

    目录 验证码类型 官网最新效果 找个用极验证的网站 拼接验证码图片 编写自动化代码 核心run方法 模拟拖动方法 图片处理方法 初步运行结果 拼接图 图片存储到本地 @ 验证码类型 今天要搞定的验证码属于现在使用非常多的验证码的一种类型...这种验证码除了打码平台以外,直接selenium搞起 拼接验证码图片 当你在谷歌浏览器使用F12进行查找元素的时候,随意的去缺口图片上面点击一下,在控制台DOM结构中出现如下代码,有前端经验的童鞋知道,这个使用的是背景局部显示技术...a[@class="gt_refresh_button"]') element.click() time.sleep(1) # 获取图片地址和位置坐标列表...image_url = url return image_url, location 使用正则表达式进行匹配的时候,需要将所有的DIV匹配出来 ,采用find_elements_by_xpath...WebElement 具备一些常用的方法和属性 size:返回元素尺寸 text :返回元素文本 get_attribute(name):获得属性值 is_dispalyed() :该元素是否用户可见 初步运行结果

    1.1K00

    知识点讲解四:selenium教程

    下面我们将继续完善代码来实现自动化,在搜索框中输入“明天依旧可好”–>点击搜索结果的第一条 time.sleep(1) driver.find_element_by_xpath("//input[@name...='wd']").send_keys("明天依旧可好") time.sleep(2) driver.find_element_by_xpath("//div[@class='result c-container...chromeoptions 是一个方便控制 chrome 启动时属性的类,主要提供如下的功能: 设置 chrome 二进制文件位置 (binary_location) 添加启动参数 (add_argument) 添加扩展应用...find_element_by_tag_name find_element_by_class_name find_element_by_css_selector 多个元素选取: find_elements_by_name find_elements_by_xpath...下面我将常用的操作一一列举出来 代码示例 driver.find_element_by_xpath("//input[@name='wd']").send_keys("明天依旧可好") driver.find_element_by_xpath

    1.2K20

    十.网络爬虫之Selenium爬取在线百科知识万字详解(NLP语料构造必备)

    图3显示的是互动百科的首页。 互动百科的信息分为两种形式存储,一种是百科中结构化的信息盒,另一种是百科正文的自由文本。...注意:使用dt、dd最外层必须使用dl包裹,标签定义了定义列表(Definition List),标签定义列表中的项目,标签描述列表中的项目,此组合标签叫做表格标签,...接下来调用Selenium扩展包的find_elements_by_xpath()函数分别定位属性和属性值,该函数返回多个属性及属性值集合,再通过for循环输出已定位的多个元素值。...其中超链接位于布局的节点下,对应代码: 调用Selenium的find_elements_by_xpath...分析网页DOM树结构,调用driver.find_element_by_xpath()进行分析。 输出结果,部分网站的内容需要存储至本地,并且需要过滤掉不需要的内容等。 下面是完整的代码及详细讲解。

    1.6K20

    Python3网络爬虫(九):使用Selenium爬取百度文库word文章

    呃….需要点击“继续阅读”才能显示后续的内容,我单爬这一页内容,是爬不到后续的内容的。第一个想到的方法是,抓包分析下,然后我又一次蒙逼了: ?     Request URL这么长!!...我们通过驱动的位置传递参数,也可以调用驱动,结果如下图所示: ?...find_element_by_tag_name find_element_by_class_name find_element_by_css_selector     多个元素选取: find_elements_by_name find_elements_by_xpath...当然我们也可以用*号省略具体的标签名称,元素的层级关系必须体现出来,比如我们不能写成//*[@id='J_login_form']/input[@id='J_password'],这样肯定会报错的。...= driver.find_element_by_xpath("//a[@data-fun='next']")     由于page元素有很多,所以我们使用find_elements_by_xpath

    3.4K61

    Python爬虫Chrome网页解析工具-XPath Helper

    HTML元素的XPath,该插件主要能帮助我们在各类网站上查看的页面元素来提取查询其代码,同时我们还能对查询出来的代码进行编辑,而编辑出的结果将立即显示在旁边的结果框中,也很方便的帮助我们判断我们的XPath...,我将这个插件上传到了百度云网盘,你可以直接下载,将其直接拖拽到浏览器的“扩展程序”页面(设置-扩展程序)即 chrome://extensions 页面 3、或者你直接在Github上进行下载,使用开发者模式进行打包...+Shift+X,唤出来XPath辅助控制台,将这段XPath粘贴到左边的Query文本框,右边Result文本框就会输入获取的值,括号内是对应匹配到的次数,同时对应的值会显示米黄色 3.png 3、至此...,你就可以在Query框中输入相应的XPath进行调试,提取到的结果都会被显示在旁边的Result文本框中 注意事项 虽然XPath Helper插件使用非常方便,但它也不是万能的,有两个问题: 1、XPath...Helper 自动提取的 XPath 都是从根路径开始的,这几乎必然导致 XPath 过长,不利于维护,我们可以使用//来处理 2、当提取多条的列表数据时,XPath Helper是使用的下标来分别提取的列表中的每一条数据

    3.6K30

    selenium模拟浏览器&PhantomJS

    获取百度搜索结果 鉴于Selenium.Webdriver的help文件太大,分屏显示又不太方便,干脆将帮助文件保存到文件中慢慢查看,执行命令 #!...self, name) find_elements_by_partial_link_text(self, link_text) find_elements_by_tag_name(self, name) find_elements_by_xpath...(self, xpath) 这18个函数前面的9个带element的函数将返回第一个符合参数要求的element,后面9个带elements的函数将返回一个列表列表中包含所有符合参数要求的element...如果仅仅是为了获取“有效数据”的位置,那还是find_element_by_xpath和find_element_by_css比较方便,强烈推荐find_element_by_xpath,真的是超级方便...url=CSU8JkNWTcCvLT0miYp8_frqdg7UTLGNjYJyv5cbc71oTDC_ZZNxUIbfu5bZa9Xu 完整代码如下: 遍历resultElements列表,可以获取所有的搜索结果

    1.5K30

    python 爬虫之selenium可视化爬虫

    chrome://version/ 查看自己的Chrome版本 我使用的是anaconda 下载好后丢入anaconda3\Scripts文件夹下就可以了 如果是其他ide如:pycharm、VScode加载的还是...find_elements_by_xpath 通过xpath路径进行定位 find_element_by_link_text find_elements_by_link_text 通过完整超链接文本进行定位...WebDriverWait(self.driver,10).until(EC.presence_of_element_located(By.ID,"LoginForm[username]")) #显示等待...element_located_to_be_selected 判断某个元素是否被选中了,一般用于下拉列表 element_selection_state_to_be 判断某个元素的选中状态是否符合预期...# 设置好应用扩展 chrome_options.add_extension(extension_path) #添加下载路径 #download.default_directory:设置下载路径

    2K61

    python基础 -- 异常处理try的使用及一些思考

    当结点存在时,继续向下执行,由于xpath.extract() 返回的是一个列表,所以要取值时,需要使用到列表的切片选取第一个元素。...但是列表可能为空列表,对空列表执行[0]操作时,会报 IndexError 错误。所以使用 try ... except ... 来捕获异常,此时出现的异常不需要处理,直接向下执行就行。...此时,如果 print_node 或 show_more_node 的xpath回空值时,他们就是空列表,程序便终止执行 try 中剩下的代码,直接进入 except 异常处理块中。...恍然明白,这段描述没有‘显示更多’,剩下的替换代码,没有执行。...因为这段最主要的目的就是抓取 description ,如果存在的话, ‘打印’结点可能存在,‘显示更多’也可能存在,但是‘打印’一定出现在‘显示更多’前面,所以顺序需要时: description

    37610

    Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)

    ,这依赖于函数的解析结果。...2.4.4__XPath 根据xpath获取xml节点内容,没有匹配到,则返回空字符串。 1、我们先来看看这个__Xpath长得是啥样子,路径:函数助手 > 选择__Xpath,如下图所示: ?...2、关键参数说明: XML file to get values from:待解析的xml文件; XPath expression to match against :xpath表达式匹配xml节点...注意: 该函数读取 XML 文件,并在文件中寻找与指定 XPath 相匹配的地方。...如果没有匹配的节点,那么函数会返回空字符串,另外,还会向JMeter日志文件写一条警告信息。 整个节点列表都会被保存在内存之中,所以文件较大时不适合使用。

    9.1K20

    odoo 开发入门教程系列-继承(Inheritance)

    模块专用于业务需求,模块也可以相互交互。这对于扩展现有模块的功能非常有用。例如,在我们的房地产场景中,我们希望在常规用户视图中直接显示销售人员的财产列表。...我们希望在“Settings/Users & Companies/Users”表单视图中直接显示与销售人员关联的房产列表。...为此,我们需要向res.users模型添加一个字段,并调整其视图以显示它。 Odoo提供了两种继承机制来以模块化的方式扩展现有模型。...目标: 在用户表单视图中显示与销售人员关联的avaliable房产列表其用户表单视图 Odoo提供了视图继承,其中子“扩展”视图应用于根视图之上,而不是就地修改现有视图(通过重写它们)。...以下两种继承都有相同的结果 <field name="idea_ids"

    2.2K20
    领券