如何使用setAttribute方法和Selenium与Python一起更改日期选择器的隐藏元素的日期?

2024-04-25 04:45:45 发布

您现在位置:Python中文网/ 问答频道 /正文

几天来,我一直在努力寻找一种使用Selenium和Python设置日期选择器日期的方法。 我发现有一个带有日期的隐藏元素,所以我尝试javascript executor为该隐藏元素设置一个值。我尝试了不同的方法,脚本似乎执行得很好,但日期没有改变

我的脚本如下所示:

#input date by using hidden date method 1
element = browser.find_element_by_xpath("/html[1]/body[1]/div[1]/form[1]/table[1]/tbody[1]/tr[1]/td[1]/div[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/table[1]/tbody[1]/tr[1]/td[1]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]/tr[1]/td[2]/input[1]")
browser.execute_script("arguments[0].setAttribute('value', '{0}')".format("2019-10-31"), element )
element.submit()

#input date by using hidden date method 2
date = "2019-10-31"
element= browser.find_element_by_xpath("/html[1]/body[1]/div[1]/form[1]/table[1]/tbody[1]/tr[1]/td[1]/div[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/table[1]/tbody[1]/tr[1]/td[1]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]/tr[1]/td[2]/input[1]")
browser.execute_script('arguments[0].setAttribute("value", "%s")' % date, element)
element.submit()

网站的HTML代码和图片如下所示:

日期选择器的HTML: HTML code of date picker

日期选择器元素:

Date picker

编辑:

更新了HTML,隐藏元素可见 HTML Code of visible element


Tags: 方法divbrowser脚本元素inputdateby
1条回答
网友
1楼 · 发布于 2024-04-25 04:45:45

<input>元素的类型属性设置为隐藏。您可以编辑/删除类型属性,并按如下方式设置值:

element = browser.find_element_by_xpath("/html[1]/body[1]/div[1]/form[1]/table[1]/tbody[1]/tr[1]/td[1]/div[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/table[1]/tbody[1]/tr[1]/td[1]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]/tr[1]/td[2]/input[1]")
browser.execute_script("arguments[0].removeAttribute('type')", element)
new_element = browser.find_element_by_xpath("/html[1]/body[1]/div[1]/form[1]/table[1]/tbody[1]/tr[1]/td[1]/div[1]/table[1]/tbody[1]/tr[2]/td[1]/div[1]/table[1]/tbody[1]/tr[1]/td[1]/table[1]/tbody[1]/tr[2]/td[1]/table[1]/tbody[1]/tr[1]/td[2]/input[1]")
browser.execute_script("arguments[0].setAttribute('value','2019-10-31')", new_element)

参考资料

您可以在以下内容中找到一些相关的详细讨论:

相关问题 更多 >