Selenium + firefox:空的execute_script参数

ASm*_*h78 4 javascript python firefox selenium selenium-webdriver

我正在尝试textarea使用javascript而不是send_keys()方法设置值.

正如文档所说,我应该能够将webelement传递给execute_script作为参数,并通过arguments数组引用此参数.但是,我已经检查了firefox js控制台,即argumentsObject,它与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)
[]
Run Code Online (Sandbox Code Playgroud)

任何人都有类似主题的经验吗?如何将webElement作为javascript的参数?

使用Firefox 35.0,selenium 2.44.0.

ale*_*cxe 5

以下是相关的错误:Firefox 35:将参数传递给executeScript不起作用.

这是在今天发布的硒2.45中修复的,升级硒包:

pip install --upgrade selenium
Run Code Online (Sandbox Code Playgroud)

老答案:

我能够使用selenium==2.44.0和重现问题Firefox 35.0:

>>> element = web.find_element_by_tag_name('textarea')
>>> web.execute_script("return arguments",element)
[]
Run Code Online (Sandbox Code Playgroud)

降级以Firefox 34.0.5解决问题:

>>> element = web.find_element_by_tag_name('textarea')
[<selenium.webdriver.remote.webelement.WebElement object at 0x1022d1bd0>]
Run Code Online (Sandbox Code Playgroud)