在Selenium中获取Javascript代码的返回值
- 2025-02-27 09:07:00
- admin 原创
- 88
问题描述:
我正在使用 Selenium2 对我的网站进行一些自动化测试,并且我希望能够获取一些 Javascript 代码的返回值。如果foobar()
我的网页中有一个 Javascript 函数,并且我想调用它并将返回值放入我的 Python 代码中,我应该调用什么来做到这一点?
解决方案 1:
要返回一个值,只需return
在传递给方法的字符串中使用 JavaScript 关键字execute_script()
,例如
>>> from selenium import webdriver
>>> wd = webdriver.Firefox()
>>> wd.get("http://localhost/foo/bar")
>>> wd.execute_script("return 5")
5
>>> wd.execute_script("return true")
True
>>> wd.execute_script("return {foo: 'bar'}")
{u'foo': u'bar'}
>>> wd.execute_script("return foobar()")
u'eli'
解决方案 2:
即使您没有将代码片段写成函数形式(如下面的示例代码所示),您也可以返回值,只需return var;
在末尾添加 var 即可。
result = driver.execute_script('''
cells = document.querySelectorAll('a');
URLs = [];
[].forEach.call(cells, function (el) {
URLs.push(el.href)
});
return URLs
''')
result
将包含本例中的数组URLs
。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
曾咪二维码
扫码咨询,免费领取项目管理大礼包!
云禅道AD