1.查找原因

我上网查了这个闪退的原因,有很多帖子包括AI的解决方法是:①先检查浏览器和驱动的版本是否一致,②selenium用旧版本试一下,③chromedriver的路径没有设置在环境变量的PATH里,④还有一个是将driver设置为全局变量。

from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.service import Service

def main():
    global driver
    chromedriver_path = r"C:\Users\opq\AppData\Local\Google\Chrome\Application\chromedriver.exe"
    service = Service(executable_path=chromedriver_path)
    driver = webdriver.Chrome(service=service)
    page = driver.get('https://www.baidu.com/')
    sleep(10)

if __name__ == "__main__":
    main()

2.解决问题

我检查上述问题。①谷歌浏览器和谷歌驱动的版本都一致。

查看谷歌浏览器版本,浏览器输入:

chrome://version/

查看驱动版本,win+r,输入cmd打开命令终端,输入以下命令查看:

chromedriver --version

由于能下载到的chromdriver最新的就是134.0.6998.88,所以没办法。

②selenium下载低版本后不适配,我就下回了高版本

③驱动的地址已经配置到环境变量里,如果没有配置,也已经在代码中指定了chromedriver.exe的位置,所以不影响。

④将driver设置为全局变量后还是出现闪退的问题,所以我试着加入了sleep,让其睡眠10秒,之后驱动打开的百度页面就停留了10s左右就关闭了。

综上所述,我认为原因就在main函数里,函数执行结束就自动关闭网页了,但是我代码能力不好,不太懂python代码的那些原理,所以就不知道为什么设置为全局变量之后还是会在函数结束后回收,导致页面关闭。发帖记录一下,因为这个问题耗费了挺长时间的。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐