将Webelement与TimeDelta进行比较



i有一个带有5列的HTML表。在第三列中是链接,第五列是日期。

现在,我想编写一个代码,该代码检查日期是否在接下来的4周内,如果是,请单击链接

这是我到目前为止所拥有的:

# Set the Date
start = time.strftime('%d-%m-%Y')
now = datetime.datetime.strptime(start, '%d-%m-%Y')
date_in_four_weeks = now + datetime.timedelta(days=28)
project_time = date_in_four_weeks - now
# Check the date and click on link
for i in range(project_time.days + 1):
    print(now + timedelta(days=i))
    time = driver.find_element_by_css_selector('css_selector')
    if time <= project_time:
        linkList = driver.find_elements_by_css_selector("css_selector")
        for i in range(0,len(linkList)):
            links = driver.find_elements_by_partial_link_text('SOLI')
            links[i].click()
            driver.get_screenshot_as_file("test.png")
    else:
        print "No Project found"

如果我运行代码,我会收到错误:

TypeError:无法将datetime.timedelta与WebElement进行比较

现在我想问一下是否有什么办法可以解决问题?

谢谢:)

您必须解决一些问题。

首先,您要与错误对象进行比较,正如错误指出的那样。这包括您引用的HTML元素的标签。您首先要提取文本。

然后,您需要解析此文本以将其转换为Python datetimedate对象。time对象不会这样做,因为它仅存储时间,而不是日期。由于我不知道您的html日期是什么格式,我只会将您指向文档,以便您可以看到类型的工作方式并了解如何解析您的数据。

最后,您仍然会遇到错误,因为试图将timedelta对象与datedatetime对象进行比较。timedelta是一段时间,它与特定日期无关。

您可以通过更换

来解决此问题

if time <= project_time:

与您的打印功能相同:

if time <= now + timedelta(days=i)

相关内容

  • 没有找到相关文章

最新更新