gpt4 book ai didi

python - 为什么 selenium 在这个 div 中找不到任何东西?

转载 作者:行者123 更新时间:2023-12-01 07:58:29 34 4
gpt4 key购买 nike

Selenium 找不到任何超过 <div id="content"> 的内容。即使该 div 下面有多个层。包括我需要从中获取数据的div。

为了尝试直接获取我感兴趣的元素,我尝试了以下方法:

departures = driver.find_elements_by_class_name('departure')
for departure in departures:
print(departure)

当出发不断显示为空列表时,我开始查看 Selenium 无法找到任何内容的点。并发现它能找到的最后一个div是 <div id="content">

然后我尝试获取该 div 的innerHTML:

content = driver.find_element_by_xpath('//*[@id="content"]')
print(content)
HTML = content.get_attribute("innerHTML")
print(HTML)

HTML是一个空字符串,表明 <div id="content"> 内没有任何内容.

重要的 HTML 部分: https://pastebin.com/L5Giz0H0

在 HTML 部分您可以看到 <div id="content"><div id="OutboundDepartures" class="timetable">是一行。但是在 Firefox 中检查页面时<div id="OutboundDepartures" class="timetable">确实显示为 <div id="content"> 中的子 div

完整的 HTML: https://pastebin.com/h07UpdqM

如何从 <div class="departure"> 获取数据当我无法通过时 div <div id="content">

最佳答案

使用 WebDriverWait 和 CSS Selectctor 获取所有信息。

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

wait = WebDriverWait(driver, 20)
items=wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '#content div.departure')))

for item in items:
print(item.text)

输出:

08:30 Sneldienst
reisduur ca 45 min. 0 meter vrij 353 pers. vrij
09:45 Veerdienst Ms. Friesland
reisduur ca 120 min. 297 meter vrij 678 pers. vrij
12:30 Sneldienst
reisduur ca 45 min. 0 meter vrij 322 pers. vrij
15:00 Veerdienst Ms. Friesland
reisduur ca 120 min. 175 meter vrij 708 pers. vrij
17:20 Sneldienst
reisduur ca 45 min. 0 meter vrij 365 pers. vrij
19:55 Veerdienst Ms. Friesland
reisduur ca 120 min. 196 meter vrij 731 pers. vrij

关于python - 为什么 selenium 在这个 div 中找不到任何东西?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828911/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com