无头Chrome浏览器 - 使用Selenium和ChromeDriver

时间:2018-06-05 20:01:57

标签: python google-chrome selenium selenium-chromedriver headless

运行所有功能的最新版本 (chrome版本66,selenium版本3.12,chromedriver版本2.39,python版本3.6.5)

我已经尝试过我在网上找到的所有解决方案,但似乎没有任何效果。我使用Selenium for Chrome自动化了一些东西,它完全符合我的需要。

我需要做的最后一件事是隐藏浏览器,因为我不需要看UI。我试图使用以下代码使浏览器无头,但是当我执行程序崩溃时。

我还尝试将窗口大小更改为0x0,甚至尝试使用命令:options.set_headless(headless=True),但似乎没有任何效果。

注意:我在Windows上运行,并尝试使用命令:

options.add_argument('--disable-gpu')

4 个答案:

答案 0 :(得分:0)

尝试在浏览器上移动浏览器

driver = webdriver.Chrome()
driver.set_window_position(-2000,0) # if -20000 don't help put -10000

答案 1 :(得分:0)

当你跑步时发生了什么,它是否会产生任何错误,或者只是像你甚至没有添加无头的争论一样运行?

这就是我为自己做的无头操作 -

from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument('--disable-gpu')
selenium_chrome_driver_path = "blah blah my path is here"

my_driver = webdriver.Chrome(chrome_options = options, executable_path = selenium_chrome_driver_path)

我正在使用python 3.6运行此代码,在Windows 8上使用最新的selenium驱动程序(不幸的是)

答案 2 :(得分:0)

结合一些资源后,找到解决方案。似乎这些库经常被更新,最终被弃用。 Atm,这个在Windows中使用Python 3.4为我工作:

char == ')' and escaped and expected_closer is None

答案 3 :(得分:-1)

尝试在chrome_options中使用用户代理

    /*
     Returns a localized string that represents the value of the element, such as the value 
     of a slider or the text in a text field. Use only when the label of the element
     differs from a value. For example: A volume slider has a label of "Volume", but a value of "60%".
     default == nil
     default on UIKit controls == values for appropriate controls 
     Setting the property will change the value that is returned to the accessibility client.  
     */
    public var accessibilityValue: String?