当我在 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