硒+火狐:空的execute_script参数 [英] Selenium+firefox: empty execute_script arguments

查看:380
本文介绍了硒+火狐:空的execute_script参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用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 



旧的答案:

我能够重现使用问题 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, that arguments 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 and Firefox 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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆