Python 硒问题

Python 硒问题,python,python-2.7,selenium,web-scraping,Python,Python 2.7,Selenium,Web Scraping,我单击日期框,清除值并请求新数据。我正在尝试单击日期字段,但我没有看到应该弹出的日历。我该怎么办 from selenium import webdriver from selenium.webdriver.common.keys import Keys driver = webdriver.Firefox(executable_path='/home/usch/Desktop/PyCharm/Project/geckodriver') #load up website driver.get

我单击日期框,清除值并请求新数据。我正在尝试单击日期字段,但我没有看到应该弹出的日历。我该怎么办

from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Firefox(executable_path='/home/usch/Desktop/PyCharm/Project/geckodriver')

#load up website
driver.get('https://www.fxstreet.com/economic-calendar')

time.sleep(10)

#close popup
popup = driver.find_element_by_xpath('//button[@aria-label="Close Modal"]')
popup.click()

#click filter options
filter = driver.find_element_by_id('fxit-advlink')
filter.click()


#set start and end time
startDate = driver.find_element_by_xpath("//input[contains(@id,'fxit-start-advanced')]")
startDate.send_keys(Keys.ENTER)
startDate.clear()
startDate.send_keys("01/02/2017")
startDate.send_keys(Keys.ENTER)

endDate = driver.find_element_by_xpath("//input[contains(@id,'fxit-end-advanced')]")
endDate.send_keys(Keys.ENTER)
endDate.clear()
endDate.send_keys("06/01/2017")
endDate.send_keys(Keys.ENTER)

#driver.switch_to.default_content()
#select countries

#select data type
category = driver.find_element_by_xpath('//a[@class="fxst-selectall" and @data-name="fxst-category"]').click()


#refresh your results
refresh = driver.find_element_by_xpath('//a[@id="fxit-filterbutton"]').click()

问题在于定位器,当您尝试运行上述代码时,它抛出错误“元素不可单击其他元素将收到单击”

只需在代码中添加
execute\u script()
,就可以了

另外,不要在编码中使用保留关键字,因为过滤器在python中是一个关键字
日历显示和消失得非常快,因为它是硒元素,它必须使事情快速进行,但你想等一会儿再看吗?即使我逐行运行,日历也不会弹出我添加的时间。睡眠(5)在每次时间设置后,它都会正确弹出,因此我认为它与你的代码无关可能重复的时间
filter1 = driver.find_element_by_css_selector('#fxit-advlink')
driver.execute_script("arguments[0].click();", filter1)

category = driver.find_element_by_xpath('//a[@class="fxst-selectall" and @data-name="fxst-category"]')
driver.execute_script("arguments[0].click();", category)

#refresh your results
refresh = driver.find_element_by_xpath('//a[@id="fxit-filterbutton"]')
driver.execute_script("arguments[0].click();", refresh)