Python Selenium Webdriver和Jupyter笔记本。通过不在同一单元格中工作的xpath查找元素

Python Selenium Webdriver和Jupyter笔记本。通过不在同一单元格中工作的xpath查找元素,python,selenium,selenium-webdriver,web-scraping,jupyter-notebook,Python,Selenium,Selenium Webdriver,Web Scraping,Jupyter Notebook,我正在运行下面的代码,从wunderground.com上获取一些数据 lookup_URL = 'https://www.wunderground.com/hourly/us/ny/new-york-city/date/2020-07-28.html' options = webdriver.ChromeOptions(); options.headless = False driver = webdriver.Chrome('./chromedriver.exe', options =

我正在运行下面的代码,从wunderground.com上获取一些数据

lookup_URL = 'https://www.wunderground.com/hourly/us/ny/new-york-city/date/2020-07-28.html'

options = webdriver.ChromeOptions();
options.headless = False

driver = webdriver.Chrome('./chromedriver.exe', options = options)

driver.get(lookup_URL)
rows = driver.find_elements_by_xpath('//td[@class="mat-cell cdk-cell cdk-column-liquidPrecipitation mat-column-liquidPrecipitation ng-star-inserted"]')
如果在单个单元格中运行该代码,则会得到
行的空列表

但是,如果我在另一个单元格中运行这一行
rows=driver.find\u elements\u by\u xpath(……)
,我就可以得到所需的数据

问题是我需要一次执行所有脚本,而不是分两部分执行


有人知道为什么会这样吗?非常感谢您的帮助

看来你需要等待

rows = WebDriverWait(driver, 60).until(EC.visibility_of_all_elements_located((By.XPATH, 'xpath_here')))
以下内容:

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

这只是表明您的页面正在执行一些AJAX调用,并且在
驱动程序.get
通过xpath查找元素之间没有足够的等待时间。如果你睡一觉,它会在同一间牢房里工作。更好的方法是EC(预期条件)谢谢@TarunLalwani这是我需要的。抱歉耽搁@frianH。这正是我需要的,非常感谢!