硒+火狐:空的execute_script参数 [英] Selenium+firefox: empty execute_script arguments
问题描述
我试图用javascript代替send_keys()方法设置 textarea
值。
,我应该能够将webelement传递给execute_script作为参数,并通过 arguments
数组引用此参数。不过,我已经检查了firefox js控制台, arguments
是Object,不管我把它作为execute_script参数放在哪里 - arguments code>总是一个空的对象。
>>>> 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(返回参数元素)
[]
任何人都有任何经验有同样的题目?如何将web元素作为JavaScript的参数?
使用Firefox 35.0,selenium 2.44.0。
以下是相关的错误: Firefox 35:传递参数给executeScript不起作用。
在今天发布的中修复了升级硒包:
$ b
pip install --upgrade selenium
$ p $
旧的答案:
我能够重现使用问题
selenium == 2.44.0
和Firefox 35.0
:
>>> element = web.find_element_by_tag_name('textarea')
>>> web.execute_script(返回参数元素)
[]
降级到
Firefox 34.0.5
解决了这个问题:
>>> element = web.find_element_by_tag_name('textarea')
[< selenium.webdriver.remote.webelement.WebElement object at 0x1022d1bd0>]
I'm trying to set
textarea
value using javascript instead send_keys() method.As documentation says, I should be able to pass webelement to execute_script as parameter and refer to this parameter via
arguments
array. However, I've checked in firefox js console, thatarguments
is Object and it doesn't matter what i put as execute_script argument -arguments
is always an empty object.>>>> 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) []
Anyone has any experience with similarly subject? How can I put webElement as argument for javascript?
Using Firefox 35.0, selenium 2.44.0.
解决方案Here is the relevant bug: Firefox 35: Passing arguments to executeScript isn't working.
Which was fixed in selenium 2.45 which was released today, upgrade selenium package:
pip install --upgrade selenium
Old answer:
I was able to reproduce the problem using
selenium==2.44.0
andFirefox 35.0
:>>> element = web.find_element_by_tag_name('textarea') >>> web.execute_script("return arguments",element) []
Downgrading to
Firefox 34.0.5
solved the issue:>>> element = web.find_element_by_tag_name('textarea') [<selenium.webdriver.remote.webelement.WebElement object at 0x1022d1bd0>]
这篇关于硒+火狐:空的execute_script参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!