【问题标题】:Inputing date using Selenium/Python does not work使用 Selenium/Python 输入日期不起作用
【发布时间】:2023-04-01 22:34:01
【问题描述】:

我正在尝试在 Python 中使用 Selenium 填写表格。文本字段工作正常,但是当我使用将文本发送到日期字段时,它不能正常工作。它似乎输入了空格。

代码如下:

h_dob_field = firefox.find_element_by_id(
            'MainContent_txtHDateofBirth'
    ).send_keys('01012001')

控制台日志显示正在发送:

 2016-02-16 17:24:38,934 - DEBUG - POST http://127.0.0.1:45672/hub/session/283ad883-ac6a-4f25-b747-26f61cb897fc/element/{cc4f0cd1-ef8a-41f5-bf0e-615b6a970031}/value {"id": "{cc4f0cd1-ef8a-41f5-bf0e-615b6a970031}", "sessionId": "283ad883-ac6a-4f25-b747-26f61cb897fc", "value": ["2", "1", "3", "1", "9", "6", "2"]}

我要定位的 html 是:

<input class="" name="ctl00$MainContent$txtHDateofBirth" id="MainContent_txtHDateofBirth" type="text">

我尝试输入数据的页面是here

我已经阅读了一些其他答案,说我应该尝试调用 click() 方法。我这样做了,但没有效果。我正在使用 Firefox 驱动程序; Python 3.4,在 Linux Mint 上,它是 selenium 的最新版本。

【问题讨论】:

    标签: python python-3.x selenium selenium-firefoxdriver


    【解决方案1】:

    您可以使用fiddler 捕获手动填写表格时的请求,并根据您的发现写一个custom web request

    另一种选择是使用 Firefox 的 selenium IDE 扩展 (link) 并使用它的记录功能来记录您的步骤并为您制作。

    【讨论】:

    • 我使用 selenium IDE 来记录我的步骤。它的日期值为 01/01/2001。我更改了使用 send_keys 发送的字符串以包含斜杠。奇怪的是,随着这一变化,它将包括月份和年份,但只为日期添加空格:01/ /2001。
    • @jejy2343 确实很奇怪,但是您的问题现在解决了对吗?
    • 不,它仍然无法正常工作。 Selenium 不会可靠地输入所有日期数字。我的代码的重点是从该网站获取生成的 pdf,但我认为我自己使用 reportlabs 生成 pdf 比找出使用 Selenium 出了什么问题要简单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-15
    • 2021-10-02
    • 2018-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多