【问题标题】:Problem in loop through span elements using python Selenium使用python Selenium循环遍历span元素的问题
【发布时间】:2021-11-08 04:44:16
【问题描述】:

目标:遍历网页上的 Span 项(通知按钮)并获取相应的 href 值。此页面可以有多个按钮类型的元素及其动态,并且将具有从 1 到 n 的值。

输入html代码:

而这 class='mb-text' 的值从 1 到 n 不等。

所以现在我需要找出这个跨度类是否存在,如果存在,然后循环遍历它并获取与这些相关的所有href

以下语句无法找到返回空列表的预期元素

elements1 = driver.find_elements_by_xpath("(//span[contains(@class,'mb-text')])")
elements1 = driver.find_elements_by_css_selector('maxbutton-1 maxbutton maxbutton-download-link')

请推荐

【问题讨论】:

  • 可以分享网址吗?

标签: python python-3.x selenium-webdriver css-selectors


【解决方案1】:

我猜您在访问这些元素之前缺少等待。
请试试这个:

wait = WebDriverWait(driver, 20)
wait.until(EC.visibility_of_element_located((By.XPATH, "//span[contains(@class,'mb-text')]")))
time.sleep(1)
elements1 = driver.find_elements_by_xpath("//span[contains(@class,'mb-text')]")

您将需要这些导入:

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

那里也可能有一个 iframe。
如果是这样,您将不得不切换到该 iframe。

【讨论】:

  • 运气不好,伙计。我想这不是我看到时间等待的问题。但是我在原始帖子中给出的 html 输入中通过 xpath 或 css 选择时犯了一些错误。不知道我错过了什么,因为它返回空列表。我需要一些建议,如何根据原始帖子中给出的 html 正确访问这些元素
  • 你能分享一个指向那个页面的链接吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-05
  • 1970-01-01
相关资源
最近更新 更多