【发布时间】:2021-12-20 19:43:42
【问题描述】:
<input readonly="" value="7 days" style="cursor: pointer;">
这是下拉列表中唯一的 html(没有选择标签等),位于 div 中。
我想在我的 python/selenium 脚本中将值从“7 天”更改为“自定义日期”。 使用普通的输入标签,我会这样做:
date = driver.find_element_by_xpath('/html/body/.../div/input')
date.send_keys('Custom date')
但是它不起作用,因为它是只读的。所以我尝试了这两个:
driver.execute_script("document.getElementsByTagName('input')[1].removeAttribute('readonly')")
#and send key
driver.execute_script("document.getElementsByTagName('input')[1].setAttribute('7 days', 'Custom Date')")
这也不起作用,所以我尝试模仿 TAB 和 ENTER 键:
date.send_keys(Keys.TAB)
date.send_keys(Keys.TAB)
date.send_keys(Keys.ENTER)
它从未执行过第二个 TAB,也没有按 ENTER。尽管如此,我认为这是我认为最好的选择,因为我在视频中看到它适用于某人。如果你能帮助我,我会非常高兴!
【问题讨论】:
-
没有更多的html代码,很难帮助你..你有网址吗?原因:有很多方法可以做下拉
-
你能在 HTML 中通过
document.getElementsByTagName('input')[1]唯一地定位元素吗? -
更好地显示此页面的问题 URL。它可能需要完全不同的解决方案。它可能会显示其他带有要选择的值的小部件,它可能需要使用
find_element_by_xpath找到它,然后使用send_keys -
现在知道了,谢谢!
标签: javascript python selenium selenium-webdriver selenium-chromedriver