我有一个任务正在尝试使用Python在selenium中自动化,其中包括选择一个日期。网站上的日期选择有一个输入框,当您选择该框时,它会下拉一个漂亮的标准日期表。
输入“文本”框设置为只读,我很难让Selenium查找我要它选择的日期,只需简单地将send_keys输入到输入框就可以了。实施起来容易得多。
经过研究,我在JS中找到了这个解决方案:
((JavascriptExecutor)driver).executeScript("arguments[0].value=arguments[1]", element, "my text to put in the value");
我可以在Python中使用类似的功能来实现相同的功能吗?
我不太熟悉Javascript,因此我的能力不允许我将其转换为Python。
任何帮助将不胜感激。
答案 0 :(得分:0)
Selenium python中存在相同的功能,可以从驱动程序对象访问该功能:
driver.execute_script("arguments[0].value=arguments[1]", element, "my text to put in the value")
您说您不了解javascript,因此为您快速概述...
您要将3个变量传递给execute_script
:
arguments[0].value=arguments[1]
的js。查找2个输入参数。它将第一个输入的.value
设置为第二个输入的值element
是您传入的下一个变量,是第一个js参数(argument[0]
),是您已经确定的网络元素"my text...blah"
是第二个参数(argument[1]
),是您要设置的字符串值有关此方法和其他方法的更多信息,请参见python-selenium docs。
执行脚本如下:
execute_script(script,* args)在 当前窗口/框架。
Args:脚本:要执行的JavaScript。 * args:JavaScript的所有适用参数。用法:driver.execute_script('return document.title;')
答案 1 :(得分:0)