Javascript 在Selenium for Python中绕过只读HTML元素?

Javascript 在Selenium for Python中绕过只读HTML元素?,javascript,python,selenium,selenium-webdriver,webdriver,Javascript,Python,Selenium,Selenium Webdriver,Webdriver,我有一项任务正试图使用Python在selenium中实现自动化,其中包括选择日期。网站上的日期选择有一个输入框,当您选择时,它会下拉一个非常标准的日期表 输入“文本”框设置为只读,我在让Selenium查找我要求它选择的日期时遇到了一些困难,能够简单地将所需日期的_键发送到输入框将是一个更容易的实现 经过研究,我在JS中找到了这个解决方案: ((JavascriptExecutor)driver).executeScript("arguments[0].value=arguments

我有一项任务正试图使用Python在selenium中实现自动化,其中包括选择日期。网站上的日期选择有一个输入框,当您选择时,它会下拉一个非常标准的日期表

输入“文本”框设置为只读,我在让Selenium查找我要求它选择的日期时遇到了一些困难,能够简单地将所需日期的_键发送到输入框将是一个更容易的实现

经过研究,我在JS中找到了这个解决方案:

((JavascriptExecutor)driver).executeScript("arguments[0].value=arguments[1]", element, "my text to put in the value");
在Python中有没有类似的函数可以实现同样的效果

我对Javascript不太熟悉,所以我的能力不允许我将其转换为Python


如果您有任何帮助,我们将不胜感激。

selenium python中存在相同的函数,可以从驱动程序对象访问该函数:

driver.execute_script("arguments[0].value=arguments[1]", element, "my text to put in the value")
你说你不懂javascript,所以给你一个简短的提纲

您正在将3个变量传递给
execute\u script

  • 第一个是执行参数[0]的js。值=参数[1]。这将查找2个输入参数。它将第一个输入的
    .value
    设置为第二个输入的值
  • element
    是您传入的下一个变量,是第一个js参数(
    argument[0]
    ),是您已经识别的webelement
  • “my text…blah”
    是第二个参数(
    参数[1]
    ),是要设置的字符串值
有关此方法和其他方法的更多信息,请参阅

执行脚本包括以下内容:

execute_脚本(脚本,*args)在 当前窗口/帧

Args:script:要执行的JavaScript。 *args:JavaScript的任何适用参数。用法:driver.execute_脚本('returndocument.title;'))

客户端等效代码行为:

driver.execute_script("arguments[0].value=arguments[1]", element, "my text to put in the value")
需要注意的是,JavaScript命令部分保持不变,只有方法名称根据绑定技术而变化,可以是Java、Python、C#等