Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 如何隐藏Chrome Web驱动程序图标(Python Selenium)_Python 3.x_Google Chrome_Selenium_Selenium Chromedriver_Chrome Options - Fatal编程技术网

Python 3.x 如何隐藏Chrome Web驱动程序图标(Python Selenium)

Python 3.x 如何隐藏Chrome Web驱动程序图标(Python Selenium),python-3.x,google-chrome,selenium,selenium-chromedriver,chrome-options,Python 3.x,Google Chrome,Selenium,Selenium Chromedriver,Chrome Options,用推理更新 目标:在后台运行chrome web驱动程序,而不在dock或应用程序栏中显示应用程序图标。仅供参考:我已经可以运行chrome headless,但我无法在我的应用程序栏中隐藏或不显示chrome图标 原因:我正在构建一个并行访问各种网站的应用程序,我不希望chrome应用程序图标显示正在进行的同步任务。我想在后台运行这些任务 当前代码带有chrome选项,可显示无头chrome chrome_options = Options() chrome_options.add_argum

用推理更新

目标:在后台运行chrome web驱动程序,而不在dock或应用程序栏中显示应用程序图标。仅供参考:我已经可以运行chrome headless,但我无法在我的应用程序栏中隐藏或不显示chrome图标

原因:我正在构建一个并行访问各种网站的应用程序,我不希望chrome应用程序图标显示正在进行的同步任务。我想在后台运行这些任务

当前代码带有chrome选项,可显示无头chrome

chrome_options = Options()
chrome_options.add_argument('headless')
chrome_options.add_argument('window-size=1200x600')
driver = webdriver.Chrome(executable_path=executable_text, chrome_options=chrome_options)
研究

chrome选项列表:

解释如何使用无头镀铬的众多帖子之一:

如何隐藏chromedriver应用程序图标,使其不显示?除了设置“无头”chrome选项外,我还可以设置chrome选项吗?这更像是在后台运行chromedriver所需的操作系统设置吗?我能够在无头模式下成功运行多个ChromeDriver,但最好不要在dock或应用程序托盘中显示chrome图标,就像phantomjs不启动应用程序图标一样


^在上面的图像中,这些是以无头模式运行的ChromeDriver,显示在我的dock中,对于我的程序来说,我甚至不想显示这些图标,因为这都是后台处理。

使用Selenium是不可能的。我真的不明白你为什么要这么做。是真的有目的,还是你不想让它表现出来?即使Chrome应用程序在dock上以无头模式显示,它的效果也相当不错

但是,如果希望图标在打开时不显示在dock中,则需要通过修改该应用程序的
Info.plist
文件来禁用它

在Chrome的
Info.plist
中,添加以下内容

 <key>LSUIElement</key>
 <true/>
LSUIElement
这将防止您的应用程序图标在工作时出现在dock中。这是我很久以前发现的,也是我看到它的地方

PS-我还没有测试它的Chrome应用程序。请自行测试。

更新(这至少在我的Mac电脑上对我起到了隐藏chromedriver图标的作用):

我无法找到
Chrome选项
来隐藏出现在dock中的
chromedriver
图标。但是,我可以编辑Chrome的Info.plist文件,作为我程序的一部分,使用
LSBackgroundOnly
键来实现隐藏chromedriver图标的功能

在Chrome的Info.plist中,我以编程方式输入:

<key>LSBackgroundOnly</key>
<string>1</string>
(二)

作为信息:这是一个棘手的问题,因为如果您在程序执行期间不正确添加/删除lsbackground,您的普通chrome应用程序可能会在后台模式下启动。根据我的经验,在最坏的情况下,您可能必须手动从Info.plist文件中删除LSBackgroundOnly,然后重新启动计算机以使Chrome退出后台模式

在程序执行后,我从程序中的Info.plist文件中删除了LSBackgroundOnly键,因为该键只需要在启动ChromeDriver时位于文件中。之后,我希望能够使用常规的Chrome应用程序,而不会出现后台打开的问题。但是,如果你理解你的程序执行并处理你的异常,这肯定能正确隐藏图标,使用你的常规Chrome应用程序也不会有什么不同


愉快的黑客行为。

请参阅:SO的期望是,用户提出问题时不仅要进行研究以回答自己的问题,还要分享研究、代码尝试和结果。这表明你花了时间来帮助自己,它使我们避免重复显而易见的答案,最重要的是,它帮助你得到一个更具体和相关的答案!另请参见:我用推理更新了描述。基本上,我希望运行正在后台执行的任务。显示正在打开的chrome应用毫无意义,因为我在正在构建的应用中显示了任务的进度条。不幸的是,在Info.plist中添加这些标记似乎不适用于chrome/运行chromedriver。它不会成功打开应用程序图标,但不会进行后台处理。
defaults write /Applications/Google\ Chrome.app/Contents/Info.plist LSBackgroundOnly -string '1'
defaults delete /Applications/Google\ Chrome.app/Contents/Info.plist LSBackgroundOnly