【发布时间】:2017-07-13 00:22:05
【问题描述】:
我正在尝试使用 Selenium 和 Python 自动化我的每月费用报告流程。我可以登录并导航到费用、日期和地点列表。我无法将它们保存到 Python 中的列表中。目前,我一直在保存日期。
我拥有 XPath 权限。当在页面上输入 Chrome 控制台时,它会显示所需日期的每个实例。但是尝试将它们保存到 Python 中的变量似乎不起作用。调试时,“日期”列表的长度为 0。
time.sleep(4)
dates = driver.find_elements_by_xpath('//time')
print(dates)
这是 HTML:
< time datetime="2017-07-11T05:00:00.000Z">07/11/2017</time>
我正在尝试从每个实例中删除“07/11/2017”。在 Chrome 控制台中使用“//time”xpath 会拉出一个包含 25 个元素的列表,这是准确的。我只是不知道为什么日期列表最终为空。我想我误解了 find_elements_by_xpath 函数的工作原理。任何建议将不胜感激。
【问题讨论】:
-
如何将
sleep替换为WebDriverWait(driver, 30).until(EC.presence_of_all_elements_located((By.XPATH, "//time"))) -
为什么你认为列表是空的?如果你这样做
print(len(dates))会发生什么? -
顺便说一句,时间标签是在 iframe 的任何框架内吗?
-
当我尝试按下按钮时,@GaurangShah WebDriverWait 无法正常工作(该网站的特定按钮对象很奇怪)。使用基本驱动程序是我让它工作的唯一方法。
-
@Guy 它返回 0。我之前在我的 IDE 中使用调试功能发现了这一点