selenium 执行js后拿不到返回值的原因

1.js代码报错,可以把代码放到浏览器控制台中执行查看具体报错信息;
2.如果js中使用了ajax调用,最后return出去请求的结果值,记得把参数async设置为false;async默认设置为true,如果你的返回结果在请求的后面程序不会等待ajax请求返回就会执行完毕,会直接执行ajax后面的语句进行返回。
下面看一个简单的示例:

js = """
function getdata(){
  var result;
  $.ajax({
    url:'url',
    type:'post',
    data:"参数",
    async:false,
    success:function(res){
      result = res;
    },error:function(err){
      console.log('err')
    }
  });
  return result;
}
return getdata();
"""
get_data = browser.execute_script(js);

你可能感兴趣的:(selenium,selenium,javascript,python)