2016-03-04 1 views
1

Так что мне нужно отказаться от страницы, например, this for example, и я использую Scrapy + Seleninum для взаимодействия с календарем datepicker, но я столкнулся с ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with.Scrapy + Selenium + Datepicker

До сих пор у меня есть:

def parse(self, response): 

    self.driver.get("https://www.airbnb.pt/rooms/9315238") 
    try: 
     element = WebDriverWait(self.driver, 10).until(
      EC.presence_of_element_located((By.XPATH, "//input[@name='checkin']")) 
     ) 
    finally: 
     x = self.driver.find_element_by_xpath("//input[@name='checkin']").click() 
     import ipdb;ipdb.set_trace() 
     self.driver.quit() 

Я видел некоторые ссылки о том, как достичь этой https://stackoverflow.com/a/25748322/977622 и https://stackoverflow.com/a/19009256/977622.

Я ценю, если кто-то может помочь мне с моей проблемой или даже предоставить лучший пример того, как я могу взаимодействовать с этим календарем даты.

+0

Помог ли ответ? Благодарю. – alecxe

+0

да, это было, извините, я слишком долго отмечал это как правильное – psychok7

ответ

1

Есть два элемента с name="checkin" - первый, который вы на самом деле находите, невидим. Вам нужно сделать свой локатор более конкретным, чтобы он соответствовал желаемому входу. Вместо этого я бы использовал условие visibility_of_element_located:

element = WebDriverWait(self.driver, 10).until(
    EC.visibility_of_element_located((By.CSS_SELECTOR, ".book-it-panel input[name=checkin]")) 
) 
Смежные вопросы