首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用python和selenium执行javascript来更改日期

如何使用python和selenium执行javascript来更改日期
EN

Stack Overflow用户
提问于 2018-08-18 06:22:55
回答 3查看 296关注 0票数 0

我刚接触selenium和javascript,但我正在尝试编写Python来更改体育比赛结果的日期。记分板页面的顶部有一个< MM/DD/YYYY >。“当前”日期(加载页面时,默认打开日期为2018年1月5日)位于中间,<&>有:

代码语言:javascript
复制
    <a href="javascript:changeDate('01/05/2018');"><</a>
    " 01/05/2018 " 
    <a href="javascript:changeDate('01/07/2018);">></a> ==$0

    <form name="params_form" action="/team/schedule_list" method="post">
    <input id="params_form_schedule_date" type="hidden" name="schedule_date"
    value="01/05/2018"> == $0
    </form>

在早些时候的html中,该站点有:

代码语言:javascript
复制
    <script language="javascript">
            function changeDate(val){
                $('#params_form_schedule_date').val(val);
                document.params_form.submit();
            }

在Python中,我尝试过:

代码语言:javascript
复制
    date = input ('Enter Date (mm/dd/yyyy): ')

    driver.execute_script('changeDate()', date)

    driver.execute_script('''
        var date = arguments[0];
        changeDate().value;''', date)

我也尝试了其他一些方法,但都不起作用。加载圈将显示正在发生的事情,但默认日期不会更改。这里的任何帮助都将不胜感激。(我也试着在这里遵循正确的格式,但我为任何错误道歉,这是我第一次发帖)。

EN

回答 3

Stack Overflow用户

发布于 2018-08-18 07:07:39

您的代码无法工作,因为您必须在driver.execute_script()中发送changeDate( val )的参数val。

您可以执行以下操作:

代码语言:javascript
复制
date = '02/05/2018'
driver.execute_script("changeDate('{}')".format(date)) # Just pay attention to the " and the ' in the command

希望能有所帮助

票数 0
EN

Stack Overflow用户

发布于 2018-08-18 11:53:13

代码语言:javascript
复制
input_date = <date in format expected>
return_val = driver.execute_script("return changedate(arguments[0])", input_date)

这可以帮助您避免使用字符串或“或”的所有细微差别。

票数 0
EN

Stack Overflow用户

发布于 2018-08-18 12:00:59

我最终用以下方法解决了这个问题:

代码语言:javascript
复制
date = input ('Enter Date (mm/dd/yyyy): ')
element=driver.find_element_by_css_selector("input[id=params_form_schedule_date]")
driver.execute_script('arguments[0].setAttribute("value", "%s")' % date, element)
element.submit()

感谢大家的帮助!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51903521

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档