【问题标题】:Select from a DatePicker in Python从 Python 中的 DatePicker 中选择
【发布时间】:2018-09-19 16:24:41
【问题描述】:

任何人都可以帮助我使用 Selenium webdriver(在 Python 中)代码来自动选择上述链接中输入日期中的日期。

https://www.nseindia.com/products/content/derivatives/equities/archieve_fo.htm

这只是一行代码,但我已经浪费了好几个小时。有人请帮忙。我已经尝试了 .send_keys() 函数并搜索了几个小时关于 datepicker 问题。请帮忙。

【问题讨论】:

标签: python selenium selenium-webdriver selenium-chromedriver


【解决方案1】:

如果包含Jquery

driver.execute_script('$("#date_element").val("1977-01-22")')

其他:

driver.execute_script('document.getElementById('date_element').value ="1977-01-22"')

【讨论】:

    【解决方案2】:

    <input> 标记中自动发送日期时,您并没有确切地提到卡在哪里。 <input> 标签如何将 type 作为 text 并且以下代码块可以完美运行:

    • 代码块:

       from selenium import webdriver
      
       driver=webdriver.Firefox(executable_path=r'C:\path\to\geckodriver.exe')
       driver.get("https://www.nseindia.com/products/content/derivatives/equities/archieve_fo.htm")
       print("Page Title is : %s" %driver.title)
       driver.find_element_by_xpath("//input[@class='textboxdata hasDatepicker' and @id='date']").send_keys("10-04-2018")
      
    • 控制台输出:

       Page Title is : NSE - National Stock Exchange of India Ltd.
      
    • 快照:


    参考

    您可以在以下位置找到一些相关的详细讨论:

    【讨论】:

    • 我同意这可以正常工作,但您是否以这种方式测试日期选择器?
    • @Frank OP 的问题标题读作 在网站中选择一个日期,并且在问题正文中 OP 提到使用 send_keys() 但不是 @Test Datepicker 功能。谢谢
    • 但他“搜索了有关日期选择器的几个小时”,所以这就是我的答案集中在日期选择器上的原因。
    • @Frank 在处理 Datepicker 功能时,您遵循的过程是最好的方法。但是 OP 明确提到了 send_keys() 因此我的回答。
    • 非常感谢,先生。但是好像有问题。当我运行此代码(打开 chrome)时,它确实打印了标题,但随后它给了我这个错误。 Traceback(最近一次调用最后一次):selenium.common.exceptions.WebDriverException:消息:未知错误:调用函数结果缺少“值”
    【解决方案3】:

    例如点击 2017 年 3 月 5 日:

    driver.get("https://www.nseindia.com/products/content/derivatives/equities/archieve_fo.htm")
    
    datepicker = driver.find_element_by_id("date")
    datepicker.click()
    
    selectMonth = driver.find_element_by_xpath('//select[@class="ui-datepicker-month"]')
    for option in selectMonth.find_elements_by_tag_name('option'):
        if option.text == 'Mar':
            option.click() 
            break
    
    selectYear = driver.find_element_by_xpath('//select[@class="ui-datepicker-year"]')
    for option in selectYear.find_elements_by_tag_name('option'):
        if option.text == '2017':
            option.click() 
            break 
    
    days = driver.find_elements_by_xpath('//a[@class="ui-state-default"]')
    days[4].click()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-08
      相关资源
      最近更新 更多