【问题标题】:Python selenium unable to click fieldPython selenium 无法点击字段
【发布时间】:2017-12-08 00:06:32
【问题描述】:

我正在尝试请求我以后可以废弃的数据。我在文本字段中写下日期,但是当我发送请求时,它不会根据日期更新。我正在尝试单击日期字段,但没有看到应有的日历弹出。我该怎么办?

from selenium import webdriver
driver = webdriver.Firefox()
driver.get('https://www.fxstreet.com/economic-calendar')

time.sleep(10)

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

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

#set start and end time
driver.find_element_by_xpath("//input[contains(@id,'fxit-start-advance')]").click()
driver.find_element_by_xpath("//input[contains(@id,'fxit-start-advance')]").send_keys("01/01/2017")

driver.find_element_by_xpath("//input[contains(@id,'fxit-end-advance')]").click()
driver.find_element_by_xpath("//input[contains(@id,'fxit-end-advance')]").send_keys("06/01/2017")


#select countries

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

#refresh your results
driver.find_element_by_id('fxit-filterbutton').click()

【问题讨论】:

  • 发送密钥前无需点击。你可以评论那些行

标签: python python-2.7 selenium selenium-webdriver web-scraping


【解决方案1】:

我尝试了您的代码,它对我来说可以正常工作。我可以看到日历打开并输入日期。 有一点 - 您可能希望在 .click() 和 .send_keys() 之间包含一个 .clear() ,因为输入框不会自动清除 - 这可能就是为什么如果有验证正在寻找时您看不到日期更新的原因正确的日期格式。

【讨论】:

    【解决方案2】:

    我会仔细检查您是否正确选择了所需的元素。正如您提到的没有看到日期时间选择器,情况可能并非如此。

    我建议使用 Selenium IDE(他们网站上的下载链接 here)。它是 Firefox 的插件,可让您记录针对页面的操作。这样你就可以与你所拥有的进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多