繁体   English   中英

使用 selenium find_elements_by_xpath 多次返回相同元素的数组,而不是所有元素

[英]Using selenium find_elements_by_xpath is returning an array of the same element multiple times rather than all elements

我正在尝试编写一个机器人来为健身房网站上的特定活动保留特定时间。 健身房的网站是这样的:

健身房网站

具有各种活动的多个实例,例如“篮球室”、“健身房主通道”、“游泳池”和其他活动。 我的目标是 select 的每个“块”信息并将其存储在一个数组中。 然后,我可以遍历数组并按可用性、类型和时间分离出活动。

我的代码如下所示:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait, Select
from selenium.webdriver.support import expected_conditions as EC

listOfClasses = browser.find_elements_by_xpath("//div[@ng-repeat='class in value']")
for classBlock in listOfClasses:
    n = classBlock.find_element_by_xpath("//h1[@class='class-title ng-binding']")
    t = classBlock.find_element_by_xpath("//div[@class='row class-details']/div[@class='col-lg-3 ng-binding'][2]")
    print("Class:",n.text,"Time of class",t.text)

页面上有 142 个可能的类可供选择。 当我运行我的脚本时,listOfClasses 有 142 个项目长,但是当我检查 n(类的名称)和 t(类的时间)的值时,索引 0-3 没有值,索引 4-141都是页面上第一个元素的值。 我只有从早上 5:00 到早上 6:00 的篮球室实例。

似乎我的初始类数组仅被页面上的第一个元素占用,或者我每次都在 listOfClasses 中搜索相同的项目。 我做错了什么?

事实证明,我不是第一个犯这个错误的人。 我发现我无意中重复了这个有用的相关问题。 本质上,“//”选项告诉 selenium 从文档的根目录开始搜索。 相反,我想要“.//”,它告诉它仅在其结果中搜索当前节点的子节点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM