Python Selenium循环中driver.execute_script无效问题求助
解决Selenium循环内
execute_script无返回结果的问题 嘿,我一眼就看出问题所在啦!你代码里的driver.execute_script(script1)确实在正常执行,但你根本没把它的返回值打印出来!
你看,在IPython控制台里,交互式环境会自动把最后一行代码的返回值输出给你;但在脚本里,除非你主动用print()去输出这个返回结果,否则控制台只会显示你手动打印的内容,也就是那些数字和script字符串。
只要修改一下循环里的代码,把execute_script的结果打印出来就行:
from selenium import webdriver cURL = "http://google.com" driver = webdriver.Chrome() driver.get(cURL) for i in range(0, 3): print(i) for x in range(0, 3): print(x) script1 = "return document.URL" print(script1) # 这里加上打印返回值的操作 url = driver.execute_script(script1) print("当前页面URL:", url)
或者更简洁一点,直接把调用和打印合并:
print(driver.execute_script(script1))
这样修改后,你就能在循环里看到每次execute_script返回的页面URL了,和你在IPython里单独执行的结果完全一致。
另外给你个小提醒:如果之后你用execute_script执行更复杂的脚本(比如获取DOM元素属性、计算页面数据),都要记得主动接收或打印返回值,脚本环境不会像交互式控制台那样自动帮你输出结果哦~
内容的提问来源于stack exchange,提问作者Sanjoy
相关产品推荐
相关产品推荐

