Jupyter 环境运行 selenium 程序为什么游览器是挂起状态的?

当我在 Jupyter 环境中运行我的 selenium 程序时,打开的游览器为什么是挂起状态的?

我该如何解决这一问题,使得它能在程序启动时弹出游览器,而不是需要我手动点击。

我想要让其看起来和 Pycharm 环境下运行效果是一样的:

 

去cmd 命令窗口执行jupyter notebook --generate-config  可以找到  Jupyter_notebook_config.py文件

在该文件中找到以下代码

#c.NotebookApp.notebook_dir = ''

添加如下代码

 C:\\Users\\twty\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe替换成自己的chrome安装路径

#c.NotebookApp.notebook_dir = ''
import webbrowser
webbrowser.register('chrome',None,webbrowser.GenericBrowser(u'C:\\Users\\twty\\AppData\\Local\\Google\\Chrome\\Application\\chrome.exe'))
c.NotebookApp.browser = 'chrome'

如果你了解windows操作系统 窗口机制 这个问题就很简单

注意以下三个进程:

jupyter notebook进程、jupyter 客户端浏览器进程、selenium进程

selenium的父进程实际是后面的jupyter notebook进程,并不是 jupyter 客户端浏览器进程,

注意 windows窗口的当前焦点  始终是 被  jupyter 客户端浏览器进程  占据的,

如果  你设法 让  jupyter notebook进程  始终占据焦点,则 selenium 启动后 会立即获得焦点,这是简单方案。

复杂方案:在 selenium 启动前,调用 win32 api 让 jupyter notebook进程 获得焦点,然后启动 selenium  。

所有由此可知,最简单办法 是 直接使用ipython

改用ipython