Python/Selenium/Chromedriver:脚本只打开一个空白的谷歌浏览器页面

3
我在一个特定的Windows 7机器上遇到了浏览器自动化脚本的问题。代码是使用Python 3.7.4编写的,使用了Selenium和Chromedriver。当我从命令行运行它时,只有Chrome浏览器启动,但它不会打开网址。这个问题只发生在一个Windows 7机器上,我无法找出原因。我已经尝试使用禁用防火墙和杀毒软件来运行脚本,但不幸的是这些措施并没有帮助。在命令行中也没有任何错误输出。
我认为有些东西正在阻止脚本连接到互联网,但使用urllib.request运行的Python脚本却没有任何问题。
该脚本在Fedora 30和Debian 10上工作正常。我还通过Gnome Boxes在Windows 10和Windows 7上进行了测试:一切都正常。
原始代码大约有3,000行,所以这里是我从头开始编写的一个小示例:
from selenium import webdriver

browser = webdriver.Chrome(executable_path = 'webdriver/chromedriver.exe')
print('Starting')
browser.get('https://google.com')

所以当我运行脚本时,除了在Chrome中打开一个空白页面外,什么也没有发生。而且"print"也没有执行。
我已经将"browser"变量存储在另一个文件中。当我在同一文件中使用这个变量运行脚本时,我得到了以下错误信息:
DevTools listening on ws://127.0.0.1:27046/devtools/browser/1ecf2c8f-c0cb-44d7-9
27d-cfa3901f645b
Traceback (most recent call last):
File "test-no-conf.py", line 5, in <module>
executable_path = 'webdriver/chromedriver.exe'
File "C:\Users\К\AppData\Local\Programs\Python\Python37\lib\site-packages\sele
nium\webdriver\chrome\webdriver.py", line 81, in __init__
desired_capabilities=desired_capabilities)
File "C:\Users\К\AppData\Local\Programs\Python\Python37\lib\site-packages\sele
nium\webdriver\remote\webdriver.py", line 157, in __init__
self.start_session(capabilities, browser_profile)
File "C:\Users\К\AppData\Local\Programs\Python\Python37\lib\site-packages\sele
nium\webdriver\remote\webdriver.py", line 252, in start_session
response = self.execute(Command.NEW_SESSION, parameters)
File "C:\Users\К\AppData\Local\Programs\Python\Python37\lib\site-packages\sele
nium\webdriver\remote\webdriver.py", line 321, in execute
self.error_handler.check_response(response)
File "C:\Users\К\AppData\Local\Programs\Python\Python37\lib\site-packages\sele
nium\webdriver\remote\errorhandler.py", line 242, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.SessionNotCreatedException: Message: session not crea
ted
from disconnected: Unable to receive message from renderer
(Session info: chrome=77.0.3865.120)

提前感谢您。

涉及IT技术的内容如下:

请分享脚本。 - rok
请阅读 [mcve] 并相应地编辑您的问题。 - Dev
谢谢。我已经在帖子中添加了一段代码示例。这不是我在那些机器上运行的实际代码。但我编写了几个小的代码示例(像那个),以测试脚本是否能够正常工作,但它未能获取URL。 - lxndrbnsv
对我来说,浏览器在打印语句之前打开似乎很奇怪。 - lxndrbnsv
2个回答

1

检查您在计算机中安装的Chrome浏览器版本,并将其与Chrome驱动程序版本进行比较。

您可以在此处了解更多有关这些更改的信息,并下载最新的驱动程序此处

特别是以下说明:

“以下是选择要下载的ChromeDriver版本的步骤: 首先,找出您正在使用的Chrome版本。 假设您有Chrome 72.0.3626.81。

获取Chrome版本号,删除最后一部分,并将结果附加到URL“https://chromedriver.storage.googleapis.com/LATEST_RELEASE_”。例如,对于Chrome版本72.0.3626.81,您将获得一个URL“https://chromedriver.storage.googleapis.com/LATEST_RELEASE_72.0.3626”。

使用上一步创建的URL来检索一个包含要使用的ChromeDriver版本的小文件。例如,上述URL将获取一个包含“72.0.3626.69”的文件。(当然,实际数字可能会在未来更改。)
使用从上一步检索到的版本号构建URL以下载ChromeDriver。对于版本72.0.3626.69,URL将是“https://chromedriver.storage.googleapis.com/index.html?path=72.0.3626.69/”。
在初始下载之后,建议您偶尔再次执行上述过程,以查看是否有任何错误修复版本。
如果这不能解决此错误,请确保关闭所有先前的Chrome和驱动程序实例。

谢谢。但不幸的是它不起作用。Chrome和Chromedriver版本都是77,启动脚本之前已终止了所有Chrome、Chromedriver和Chromium进程。我认为这可能是该机器上特定的Windows 7版本问题。看来我必须重新安装操作系统。 - lxndrbnsv
Selenium模块的版本是多少? - Naveen
这是Selenium 3.141.0版本。 - lxndrbnsv
那应该可以工作了。您可以尝试卸载并重新安装Selenium、Python和Chrome,看看能否解决问题? - Naveen
我已经尝试过了,但还是谢谢。我想知道是否有任何系统组件可能会与Selenium冲突。 - lxndrbnsv

0

我已重新安装系统,现在一切正常。似乎那台机器上的系统有些问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接