使用Selenium在无头Chrome中访问LocalStorage

时间:2018-06-20 16:53:28

标签: python google-chrome selenium selenium-webdriver

因此,我在Mac上从Python运行Selenium,并且无头Chrome出现错误。 这是我的无头镀铬装置。我正在加载具有一个扩展名的默认chrome配置文件:ModHeader

我的设置如下

 chrome_options = webdriver.ChromeOptions()
 chrome_options.add_argument('headless')
 chrome_options.add_argument("--no-sandbox")
 chrome_options.add_argument('--disable-gpu')
 chrome_options.add_argument('--proxy-server=%s' % PROXY)
 chrome_options.add_argument("user-agent={}".format(USER_AGENT))
 chrome_options.add_argument('--window-size=1420,1080')
 chrome_options.add_argument("user-data-dir=/Users/test/Library/Application Support/Google/Chrome/")
 driver = webdriver.Chrome(chrome_options=chrome_options)

我想将ProxyMesh与特定IP地址一起用于请求。因此,我访问localstorage以在ModHeader中设置适当的标头

 driver.execute_script(
  "localStorage.setItem('profiles', JSON.stringify([{                " +
     "  title: 'Selenium', hideComment: true, appendMode: '',           " +
     "  headers: [                                                      " +
     "   {enabled: true, name: 'X-ProxyMesh-IP', value: '%s', comment: ''}"%ip_address +
     "  ],                                                              " +
     "  respHeaders: [],                                                " +
     "  filters: []                                                     " +
     "}]));                                                        ")

当我不运行无头Chrome时并没有发生此问题,是当我尝试运行driver.execute_script时遇到了以下错误。

  

消息:将目标移出边界:无法读取“ localStorage”   属性来自“窗口”:拒绝对此文档进行访问。

您是否无法使用无头Chrome访问本地存储?我的配置需要更改吗?任何想法,将不胜感激?

1 个答案:

答案 0 :(得分:0)

我在Chrome浏览器中收到了使用python硒的错误消息“错误加载扩展程序”。 下面的代码将对此有效。

executable_path = 'Path/chromedriver.exe'   ---Where your Chrome driver.exe
capabilities = { 'chromeOptions':  { 'useAutomationExtension': False}}
driver = webdriver.Chrome(executable_path,desired_capabilities = capabilities)
driver.get("https://google.com")