`
fantaxy025025
  • 浏览: 1251047 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类

selenium 返回js执行结果

阅读更多

=

其实很简单,js有返回值就可以。普通的执行js没有返回值,这要注意。

=

 

参考:https://blog.csdn.net/Genevar/article/details/115552169 有改动!!!

 

如何(python+selenium )返回js执行结果

通过常规方法:

js = “document.getElementById(‘input-286’).value;” //注意这里的js没有返回值

a = driver.execute_script(js)

print(a)

 

执行后,返现print结果为None。其实JS得到了执行,比如给value 赋值,页面输入框内容发生变化,说明元素定位以及js执行是正常的。但是用 print(type(driver.execute_script(js)))打印结果类型。会提示 无类型。

问题的答案在于:如果需要返回值,需要在js 的前面加上return

即:

js = “return document.getElementById(‘input-286’).value;”//注意这里的js *有了*返回值

然后print(driver.execute_script(js))就可看到结果。

 

如果元素只能通过xpath定位,变化一下js语句,在js语句前加return,也可得到js执行结果。

 

js = “return document.evaluate(xpath, document).iterateNext().value”

print(driver.execute_script(js))

 

参考:https://blog.csdn.net/majixiang1996/article/details/112484449

 

=

=

=

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics