Javascript 在Selenium for Python中绕过只读HTML元素?
我有一项任务正试图使用Python在selenium中实现自动化,其中包括选择日期。网站上的日期选择有一个输入框,当您选择时,它会下拉一个非常标准的日期表 输入“文本”框设置为只读,我在让Selenium查找我要求它选择的日期时遇到了一些困难,能够简单地将所需日期的_键发送到输入框将是一个更容易的实现 经过研究,我在JS中找到了这个解决方案: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
((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
是您传入的下一个变量,是第一个js参数(element
),是您已经识别的webelementargument[0]
是第二个参数(“my text…blah”
),是要设置的字符串值参数[1]
driver.execute_script("arguments[0].value=arguments[1]", element, "my text to put in the value")
需要注意的是,JavaScript命令部分保持不变,只有方法名称根据绑定技术而变化,可以是Java、Python、C#等