2024-04-17 23:36:01 发布
网友
我正在使用Selenium2对我的网站进行一些自动化测试,我希望能够获得一些Javascript代码的返回值。如果我的网页中有一个foobar()Javascript函数,并且我想调用它并将返回值输入到Python代码中,那么我可以调用什么来实现这一点?
foobar()
即使没有像下面的示例代码中那样将代码片段作为函数编写,也可以返回值,方法是在var是要返回的变量的末尾添加return var;。
return var;
result = driver.execute_script('''cells = document.querySelectorAll('a'); URLs = [] console.log(cells); [].forEach.call(cells, function (el) { if(el.text.indexOf("download") !== -1){ //el.click(); console.log(el.href) //window.open(el.href, '_blank'); URLs.push(el.href) } }); return URLs''')
result将包含本例中的URLs数组。
result
URLs
要返回值,只需在传递给execute_script()方法的字符串中使用returnJavaScript关键字,例如
execute_script()
return
>>> 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'
即使没有像下面的示例代码中那样将代码片段作为函数编写,也可以返回值,方法是在var是要返回的变量的末尾添加
return var;
。result
将包含本例中的URLs
数组。要返回值,只需在传递给
execute_script()
方法的字符串中使用return
JavaScript关键字,例如相关问题 更多 >
编程相关推荐