我试图通过点击日历来检查每日https://www.homeaway.pt/arrendamento-ferias/p418841的可用性/价格,检查哪些天被占用或没有,点击next
按钮,以便它可以跳到下个月。Python Selenium +日期选择器问题
我也想点击抵达日期,然后选择一个结帐日期,以便我可以看到它的价格。
我遇到了问题,因为我尝试在chrome中工作的命令,但他们似乎并没有在硒中工作。
例如:
我做的:
self.driver.get(url)
wait = WebDriverWait(self.driver, 10)
try:
elem = wait.until(
EC.visibility_of_element_located(
(
By.CSS_SELECTOR,
"#startDateInput"
)
)
)
except TimeoutException:
pass
else:
elem.send_keys(Keys.NULL)
这似乎打开日历,而且我还可以列出所选的日期:
for x in self.driver.find_elements_by_css_selector(".stab-calendar-day.stab-calendar-day-active.stab-calendar-day-selectable.pull-left"): print(x.get_attribute('data-formatted-date'))
但后来,当我想要跳到下一个有效月份,它会一直显示相同的最初月份,这是因为这不起作用:
self.driver.find_element_by_css_selector('.stab-calendar-controls-next').click()
selenium.common.exceptions.NoSuchElementException:消息:无法定位元件:{ “方法”: “CSS选择”, “选择器”: “刺个历控制 - 下”}
关于如何获得每套选定日期的房屋可用性/价格的任何想法?
我没有python,但我在Java中编写了一些代码,我没有真正发现任何问题。我正在使用不同的CSS选择器来获取可用日期'',div.stab-calendar-day-selectable:not(.stab-calendar-day-disabled)“'。您需要使用这个来区分那些在月末和月初作为占位符的日期,但不能点击或者您会发现您会重复日期。当我用'“a.stab-calendar-controls-next”找到并点击下一个按钮时,它对我来说工作正常。这可能是一个计时问题,你点击下一步之前是否尝试过等待? – JeffC
您可以发布您的Java代码,以便我可以看看并尝试这种方式吗?我没有尝试等待,但没有运气 – psychok7
只要日历弹出窗口仍在显示,您的代码就可以在Chrome和Python上正常工作。我剪切和粘贴没有错误。检查硒的版本?你可以尝试与另一个驱动程序(Firefox等)? – pbuck