Javascript 硒+;firefox:空的execute_脚本参数

Javascript 硒+;firefox:空的execute_脚本参数,javascript,python,firefox,selenium,selenium-webdriver,Javascript,Python,Firefox,Selenium,Selenium Webdriver,我试图使用javascript而不是send_keys()方法设置textarea值 正如文档所述,我应该能够将webelement作为参数传递给执行_脚本,并通过参数数组引用此参数。然而,我已经在firefox js控制台中检查过,参数是对象,不管我把什么作为执行脚本参数-参数始终是空对象 >>>> web = webdriver.Firefox() >>>> web.get("http://somepage.com") >>>

我试图使用javascript而不是send_keys()方法设置
textarea

正如文档所述,我应该能够将webelement作为参数传递给执行_脚本,并通过
参数
数组引用此参数。然而,我已经在firefox js控制台中检查过,
参数
是对象,不管我把什么作为执行脚本参数-
参数
始终是空对象

>>>> 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。

以下是相关错误:

已修复,今天发布,升级selenium软件包

pip install --upgrade selenium

旧答案:

我能够使用
selenium==2.44.0
firefox35.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>]
>>element=web。通过标签名称(“textarea”)查找元素
[]

自版本35起,Selenium无法再在Firefox中使用传递的参数执行javascript。Selenium已经能够通过一种称为“exposedProps”的后门传入参数。作为全面收紧外部绑定接口(以及一些繁忙工作的一部分,这些工作由他们从谷歌赚来的钱提供资金),他们不赞成并删除了这个接口。他们的意图记录在一份报告中。Selenium bug涵盖了它,但我认为这让开发团队感到意外,而且我还没有看到任何迁移到另一个接口的活动,我认为这是可能的


它不会影响其他浏览器,但Firefox是迄今为止使用Selenium进行测试的最快、最简单的方法。目前,对于我们web测试人员来说,最好的选择是降级到并关闭自动更新,直到有了解决方案为止。

有趣的是,我无法复制它,后面的语句打印:
[]
。您使用的是哪个selenium和firefox版本?
selenium.\uuuuuu版本\uuuuuuu'2.44.0'
firefox-35.0欢迎使用StackOverflow。第一个答案很好!我可以确认Selenium 2.45.0可以与FF 36一起正常工作。不幸的是,自v34以来对FF所做的更改导致了整个测试执行的显著降低。