全部产品
  • 首页 > 
  • 如何针对不同浏览器使用executejs方法

如何针对不同浏览器使用executejs方法

rpa3.ie.executejs

1、IE中的js代码是被包在方法中使用的,若不写return则只会执行得不到返回值
2、为了使得得到正确类型的结果,需要在js代码中将return的结果包成一个json字符串,在python中获得后需重新loads出来

  1. page = rpa.ie.create('www.baidu.com')
  2. a = page.executejs('return JSON.stringify(1+1);')
  3. print(json.loads(a),type(json.loads(a)))
  4. b = page.executejs('return JSON.stringify(3.45);')
  5. print(json.loads(b),type(json.loads(b)))
  6. c = page.executejs('return JSON.stringify("adsd");')
  7. print(json.loads(c),type(json.loads(c)))
  8. d = page.executejs('return JSON.stringify([123, "dsad"]);')
  9. print(json.loads(d),type(json.loads(d)))
  10. e = page.executejs('return JSON.stringify({"name":"dsad","age":{"key":123}});')
  11. print(json.loads(e),type(json.loads(e)))

rpa3.chrome.executejs

1、chrome的js实现里已经将结果包成了一个json字符串,故在python中获得后需重新loads出来

  1. page = rpa.chrome.create('www.baidu.com')
  2. a = page.executejs('1+1')
  3. print(json.loads(a),type(json.loads(a)))
  4. b = page.executejs('3.45')
  5. print(json.loads(b),type(json.loads(b)))
  6. c = page.executejs('"adsd"')
  7. print(json.loads(c),type(json.loads(c)))
  8. d = page.executejs('[123, "dsad"]')
  9. print(json.loads(d),type(json.loads(d)))
  10. e = page.executejs('(function(){return {"name":"dsad","age":{"key":123}};})()')
  11. print(json.loads(e),type(json.loads(e)))

执行结果如下
image.png