2017-11-24 1 views
0

5 개의 열이있는 HTML 표가 있습니다. 세 번째 열에는 링크가 있고 다섯 번째 열에는 날짜가 있습니다.WebElement와 Timedelta를 비교하십시오.

지금 내가 날짜가 다음 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: can't compare datetime.timedelta to WebElement

이제 문제를 해결할 수있는 방법이 있는지 묻고 싶습니다.

감사 :

+0

당신은 비교하기 전에 날짜 객체에'time'을 변환해야합니다. –

+0

정보를 제공해 주셔서 감사합니다.하지만 파이썬을 처음 접했을 때, 어떻게해야합니까? –

답변

0

해결해야 할 몇 가지 문제가 있습니다.

먼저 오류가 유용하게 지적했듯이 WebElement 객체와 비교할 수 있습니다. 여기에는 참조하는 HTML 요소의 태그 등이 포함됩니다. 먼저 텍스트를 추출하려고합니다.

그런 다음이 텍스트를 구문 분석하여 Python datetime 또는 date 개체로 변환해야합니다. time 개체는 시간 만 저장하고 날짜는 저장하지 않으므로 수행하지 않습니다. HTML 날짜가 어떤 형식인지는 알 수 없으므로 the docs을 가리키며 형식이 어떻게 작동하는지보고 데이터를 구문 분석하는 방법에 대해 알 수 있습니다.

마지막으로 timedelta 개체를 date 또는 datetime 개체와 비교하려고하기 때문에 오류가 발생합니다. A timedelta은 일정 기간이며 특정 날짜와 관련이 없습니다.

당신은 당신의 인쇄 기능에서 같은과 함께

if time <= project_time:

을 대체하여이 문제를 해결할 수 :

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

관련 문제