Scrapy + 硒 + 日期选择器
Scrapy + Selenium + Datepicker
所以我需要像 this for example 这样的页面,我正在使用 Scrapy + Seleninum 与 datepicker
日历交互,但我 运行 变成了 ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
.
到目前为止我有:
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()
我看到了一些关于如何实现这一点的参考资料 and 。
如果有人可以帮助我解决我的问题,或者甚至提供一个更好的例子来说明我如何与这个日期选择器日历进行交互,我将不胜感激。
有两个元素带有 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]"))
)
所以我需要像 this for example 这样的页面,我正在使用 Scrapy + Seleninum 与 datepicker
日历交互,但我 运行 变成了 ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
.
到目前为止我有:
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()
我看到了一些关于如何实现这一点的参考资料 and 。
如果有人可以帮助我解决我的问题,或者甚至提供一个更好的例子来说明我如何与这个日期选择器日历进行交互,我将不胜感激。
有两个元素带有 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]"))
)