【发布时间】:2016-05-03 16:58:34
【问题描述】:
我试图通过单击日期选择器日历中的下一步按钮来获取 airbnb 中每一天的可用性/价格,但没有运气。
我当前的代码是这样的:
def handle(self, *args, **options):
def airbnb():
display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Firefox()
driver.maximize_window()
driver.get("https://www.airbnb.pt/rooms/265820")
# wait for the check in input to load
wait = WebDriverWait(driver, 10)
elem = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, "div.book-it-panel input[name=checkin]")))
elem.click()
# wait for datepicker to load
wait.until(
EC.visibility_of_element_located((By.CSS_SELECTOR, '.ui-datepicker:not(.loading)'))
)
days = driver.find_elements_by_css_selector(".ui-datepicker table.ui-datepicker-calendar tr td")
for cell in days:
day = cell.text.strip()
if not day:
continue
if "ui-datepicker-unselectable" in cell.get_attribute("class"):
status = "Unavailable"
else:
status = "Available"
price = "n/a"
if status == "Available":
# hover the cell and wait for the tooltip
ActionChains(driver).move_to_element(cell).perform()
price = wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR, '.datepicker-tooltip'))).text
print(day, status, price)
他们都工作,但只有 1 个月。我希望能够设置 X 个月。例如对于homeaway,我在第一次打开日历点击后尝试使用self.driver.find_element_by_css_selector('.ui-datepicker-next.ui-corner-all').click(),但我得到了ElementNotVisibleException
提前致谢
【问题讨论】:
标签: python selenium datepicker