硒找不到<div id="content">
之后的任何内容。即使该div下有多个图层。包括我需要从中获取数据的div。
要尝试直接获取我所涉及的元素,我尝试了以下方法:
departures = driver.find_elements_by_class_name('departure')
for departure in departures:
print(departure)
当离场值一直显示为空列表时,我开始看着两点硒找不到任何东西。并发现它可以找到的最后一个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">
完整的HTML: https://pastebin.com/h07UpdqM
当我无法通过<div class="departure">
时,如何从<div id="content">
div中获取数据?
答案 0 :(得分:1)
使用WebDriverWait和CSS Selctor获取所有信息。
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