【问题标题】:Selenium problems硒问题
【发布时间】:2017-12-08 07:00:03
【问题描述】:

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

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()

【问题讨论】:

  • 日历显示和消失的速度非常快,因为它是硒,它必须让事情进展得很快,但你想等一会儿看看吗?
  • 即使我逐行运行,日历也不会弹出
  • 我在每次设置后添加了 time.sleep(5),它正确弹出,所以我认为它与您的代码无关

标签: python python-2.7 selenium web-scraping


【解决方案1】:

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

只需在您的代码中添加execute_script() 即可使用

也不要在编码中使用保留关键字,因为过滤器是 python 中的关键字

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)

【讨论】:

    猜你喜欢
    • 2018-10-22
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 2016-10-26
    • 2019-11-23
    • 2017-02-26
    相关资源
    最近更新 更多