【发布时间】:2016-05-04 14:04:20
【问题描述】:
我正在尝试通过单击日期选择器日历中的下一步按钮来获取 homeaway 中每一天的价格,但没有成功。
我当前的代码是这样的:
def handle(self, *args, **options):
def homeaway(self):
display = Display(visible=0, size=(1024, 768))
display.start()
driver = webdriver.Firefox()
driver.maximize_window()
wait = WebDriverWait(driver, 10)
url = 'https://www.homeaway.pt/arrendamento-ferias/p1418427a?uni_id=1590648'
driver.get(url)
# pick start date
start_date = wait.until(EC.visibility_of_element_located((
By.CSS_SELECTOR,
".quotebar-container input[name=startDateInput]")))
start_date.click()
first_available_date = wait.until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "#ui-datepicker-div td.full-changeover > a")))
ActionChains(driver).move_to_element(first_available_date).perform()
driver.find_element_by_css_selector(
"#ui-datepicker-div td.full-selected.full-changeover > a").click()
# pick end date (TODO: violates DRY principle, refactor!)
end_date = wait.until(EC.visibility_of_element_located(
(By.CSS_SELECTOR, ".quotebar-container input[name=endDateInput]")))
end_date.click()
first_available_date = wait.until(EC.element_to_be_clickable(
(By.CSS_SELECTOR, "#ui-datepicker-div td.full-changeover > a")))
ActionChains(driver).move_to_element(first_available_date).perform()
driver.find_element_by_css_selector(
"#ui-datepicker-div td.full-selected.full-changeover > a").click()
# get the calculated price
price = wait.until(EC.visibility_of_element_located(
(By.CSS_SELECTOR, ".price-quote .price-total")))
print(price.text.encode('ascii', 'ignore'))
driver.close()
他们都工作,但只有 1 个月。我希望能够设置 X 个月。例如对于homeaway,我在第一次打开日历点击后尝试使用self.driver.find_element_by_css_selector('.ui-datepicker-next.ui-corner-all').click(),但我得到了ElementNotVisibleException
提前致谢
【问题讨论】:
标签: python selenium datepicker