Javascript 硒+;firefox:空的execute_脚本参数
我试图使用javascript而不是send_keys()方法设置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") >>>
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所做的更改导致了整个测试执行的显著降低。