我想用python selenium在https://www.homeaway.com/上搜索
以下是工作原理:
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.homeaway.com/")
driver.find_element_by_xpath("//input[@id='searchKeywords']").send_keys("Philadelphia, PA, USA")但是我在使用日历下拉日期选择器时遇到了一个问题,因为它没有接受任何值。
我尝试过以下几种方法
尝试%1在开始和结束日期字段中输入日期:
driver.find_element_by_xpath("//input[@id='stab-searchbox-start-date']").send_keys("02/01/2017")
driver.find_element_by_xpath("//input[@id='stab-searchbox-end-date']").send_keys("03/01/2017")注意:看起来homeaway网站完全忽略了上面的命令,除非你用鼠标手动点击网站,然后使用上面的selenium命令。换句话说,如果不先在网站上手动单击鼠标,上述命令将不起作用。
尝试2在开始和结束日期字段中输入日期:
driver.find_element_by_xpath("//div[@id='2017-02-01_2017-02']").click()尝试%3在开始和结束日期字段中输入日期
driver.execute_script("document.querySelectorAll('#stab-searchbox-start-date')[0].value = '02/01/2017'")
driver.execute_script("document.querySelectorAll('#stab-searchbox-end-date')[0].value = '03/01/2017'")
driver.find_element_by_xpath("//button[@class='btn btn-primary btn-lg searchbox-submit js-searchSubmit']").click()注意:这看起来是可行的,但是当你点击搜索时,尽管在开始和结束日期文本框中输入了日期,但实际上并没有注册日期。似乎homeaway只会在你使用日历下拉菜单的情况下注册日期。
发布于 2017-01-27 19:44:06
请注意,当不支持输入文本时,您不能在这些类型中使用send_keys。
试试这段代码,它会起作用的:
from selenium import webdriver
url='http://www.homeaway.com/'
driver = webdriver.Chrome()
driver.maximize_window()
driver.get(url)
driver.find_element_by_id("search-location").send_keys("Philadelphia, PA, USA")
driver.find_element_by_id('search-checkin').click()
driver.find_element_by_xpath('//*[@id="ui-datepicker-div"]//*[text()="30"]').click()
driver.find_element_by_id('search-checkout').click()
driver.find_element_by_xpath('//*[@id="ui-datepicker-div"]//*[text()="31"]').click()https://stackoverflow.com/questions/41887055
复制相似问题