javascript - 如何使用 setAttribute 方法和 Python 中的 Selenium 更改 Datepicker 的隐藏元素的日期?

标签 javascript python selenium selenium-webdriver setattribute

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

我的脚本是这样的:

#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

最佳答案

<input>元素将 type 属性设置为 hidden。您可以编辑/删除 type 属性并按如下方式设置值:

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)

引用资料

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

关于javascript - 如何使用 setAttribute 方法和 Python 中的 Selenium 更改 Datepicker 的隐藏元素的日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65064715/

相关文章:

javascript - 像 Firefox 一样预览和缩放图像

javascript - Google Apps 脚本返回数组值并在 javascript 函数中使用它们

javascript - 如何使用正则表达式进行正确的输入验证?

python - 如何在 keras 中保存整个数据的预测值

python - 我的抓取工具无法从网页获取所有项目

javascript - 使用 Javascript 中的 SauceLabs 在 iPhone 上进行 Selenium 测试

javascript - ES6 模块拼接

python - (n,) 在 numpy 和向量的上下文中意味着什么?

Python 请求超时不适合网站流式传输

python - 如何使用 Selenium 找到对象?