我正在尝试使用 javascript 而不是 send_keys() 方法来设置 textarea
值。
如文档所述,我应该能够将 webelement 作为参数传递给 execute_script,并通过 arguments
数组引用此参数。但是,我已经在 firefox js 控制台中检查过,arguments
是 Object 并且我将什么作为 execute_script 参数放置并不重要 - arguments
始终是一个空对象。
>>>> web = webdriver.Firefox()
>>>> web.get("http://somepage.com")
>>>> element = web.find_element_by_tag_name("textarea")
>>>> web.execute_script("return typeof(arguments)", element)
u'object'
>>> web.execute_script("return arguments",element)
[]
有人有类似主题的经验吗?如何将 webElement 作为 javascript 的参数?
使用 Firefox 35.0,selenium 2.44.0。
最佳答案
这是相关错误:Firefox 35: Passing arguments to executeScript isn't working .
已在 selenium 2.45 中修复今天发布,升级selenium包:
pip install --upgrade selenium
旧答案:
我能够使用 selenium==2.44.0
和 Firefox 35.0
重现该问题:
>>> element = web.find_element_by_tag_name('textarea')
>>> web.execute_script("return arguments",element)
[]
降级到 Firefox 34.0.5
解决了这个问题:
>>> element = web.find_element_by_tag_name('textarea')
[<selenium.webdriver.remote.webelement.WebElement object at 0x1022d1bd0>]
关于javascript - Selenium +火狐 : empty execute_script arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28031404/