【问题标题】:Python/Selenium incognito/private modePython/Selenium 隐身/私人模式
【发布时间】:2015-02-22 04:12:57
【问题描述】:

我似乎找不到任何关于如何让 Selenium 在隐身模式下打开浏览器的文档。

我必须在浏览器中设置自定义配置文件吗?

【问题讨论】:

  • @AlexMeng 是的,可能是重复的,但我想我已经设法在一个答案中总结了这个想法,并提供了更多特定于 python 的选项。谢谢。
  • @alecxe 我同意您在这里的回答更详细,因此应该优先考虑。但是,结果是您发布答案的 other 问题与此问题重复。(按照 SO 习惯投票为重复问题完全没问题答案质量较差,无论 首先 发布了哪个问题。)请注意,Meta 上的常客对发布问题及其重复问题的答案的用户持模糊看法。

标签: python selenium browser selenium-webdriver incognito-mode


【解决方案1】:

首先,由于selenium 默认启动一个具有干净、全新配置文件的浏览器,您实际上已经在私密浏览。参考:


但无论如何,您都可以严格执行/打开隐身/私人模式。

对于 chrome 通行证--incognito command-line argument:

--incognito 使浏览器直接以隐身模式启动。

from selenium import webdriver

chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--incognito")

driver = webdriver.Chrome(chrome_options=chrome_options)
driver.get('https://google.com')

仅供参考,它会打开:

对于 Firefox,将 browser.privatebrowsing.autostart 设置为 True

from selenium import webdriver

firefox_profile = webdriver.FirefoxProfile()
firefox_profile.set_preference("browser.privatebrowsing.autostart", True)

driver = webdriver.Firefox(firefox_profile=firefox_profile)

仅供参考,这对应于设置中的以下复选框:

【讨论】:

  • 你知道如何在Firefox中使用吗?
  • 我理解你在“Python - 在私有模式下使用 Selenium 启动 firefox”中的意思,但我同时运行多个东西并且需要 ingonito,否则 url 会根据之前的内容重定向正在做。谢谢
  • 在测试时强制执行实际的隐身模式很重要。例如,Safari 在私有模式下禁止写入本地存储。因此,以检测与此限制相关的错误的方式运行测试非常重要。
  • 复制/粘贴此代码对我不起作用(最新的 Linux/Mint 发行版)。一切正常,只是它没有以隐身模式启动。有什么想法吗?
  • 请注意,在测试亚马逊等大型网站时,隐身模式似乎要快得多。我认为这是因为获取个性化广告等的连接开销更少,而且加载和拆卸速度更快。
【解决方案2】:

PowerShell

try{
    # Import the Selenium DLLs
    Add-Type -Path "$Seleniumlib\Selenium.WebDriverBackedSelenium.dll"
    Add-Type -Path "$Seleniumlib\WebDriver.dll"
    Add-Type -Path "$Seleniumlib\WebDriver.Support.dll"
}
catch [Exception]{
    Write-Host ("Error: {0}" -f $_.Exception.Message)
    exit 1
}

$options = New-Object OpenQA.Selenium.Chrome.ChromeOptions
$options.AddArgument("--incognito")
$driver = New-Object OpenQA.Selenium.Chrome.ChromeDriver($options)

【讨论】:

    【解决方案3】:

    有一种非常简单的方法可以让窗口以隐身模式打开:

    from selenium.webdriver.chrome.options import Options
    
    chrome_options = Options()
    # incognito window
    chrome_options.add_argument("--incognito")
    

    您还可以使用此库来最大化窗口等,请参阅文档:https://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/Chrome/Options.html

    【讨论】:

      【解决方案4】:

      我已经使用 ChromeOptions 和 FirefoxOptions 在隐身/私人模式下启动了 Chrome 和 Firefox,并使用 Java 中的代码 sn-ps 成功,如下所示:

          //For Firefox
          FirefoxOptions options = new FirefoxOptions();
          options.addArguments("-private");
          DesiredCapabilities caps = new DesiredCapabilities();
          caps.setCapability("moz:firefoxOptions",options);
      
          //For Chrome
          ChromeOptions options = new ChromeOptions();
          options.addArguments("-incognito");
          caps.setCapability(ChromeOptions.CAPABILITY, options);
      
          WebDriver driver = new RemoteWebDriver(new URL(URL), caps);
      

      【讨论】:

        【解决方案5】:

        对于火狐:(Python) ==>

        from selenium import webdriver    
        firefox_options = webdriver.FirefoxOptions()
        firefox_options.add_argument("--private")
        browser = webdriver.Firefox(firefox_options=firefox_options)
        

        【讨论】:

        • 关闭:options.add_argument("-private")developer.mozilla.org/en-US/docs/Mozilla/Command_Line_Options
        • 它仍然有效。但是得到了这个:DeprecationWarning: use options instead of firefox_options browser = webdriver.Firefox(firefox_options=firefox_options)
        • ("--private"), ("-private ") 对于 Linux 来说都是一样的。不确定Windows!您也可以使用("-private-window") 而不是("-private")。 @wp78de
        • @luney ,如果 options 工作而不是 firefox_options,那么使用它!
        【解决方案6】:

        注意:chrome_options 现已弃用。我们可以使用 'options' 代替 chrome_options

        from selenium import webdriver
        
        options = webdriver.ChromeOptions()
        options.add_argument("--incognito")
        
        driver = webdriver.Chrome(options=options)
        driver.get('https://google.com')
        

        【讨论】:

          【解决方案7】:

          在 Chrome 浏览器中,您可以使用 Python 执行此操作,如下所示

          正如您在使用 chrome 时所看到的,您可以在 chrome 浏览器的选项菜单部分选择隐身模式。因此,当您使用 selenium 时,您可以使用来更改选项的内容

          chrome_options = webdriver.ChromeOptions()
          

          所以,代码是:

          chrome_options = webdriver.ChromeOptions()
          chrome_options.add_argument("--incognito")
          
          driver = webdriver.Chrome(executable_path="<path of chrome_driver.exe file>",options=chrome_options)
          

          因此,您唯一需要做的就是将“webdriver.Chrome”这个给定值赋予它的另一个参数,即“options”。

          【讨论】:

            【解决方案8】:

            对于带有opera的python

            from selenium import webdriver
            
            options =  webdriver.opera.webdriver.Options()
            options.add_argument("private")
            driver = webdriver.Opera(executable_path="operadriver",options=options)
            

            【讨论】:

              【解决方案9】:
              //We need to add argument "--incogneto" in ChromeOptions object and pass this ChromeOptions instance to the web driver initialization.  
                
                  
                  ChromeOptions options = new ChromeOptions()
                  options.addArgument("start-maximized");
                  options.addArgument("--incognito");
                  ChromeDriver driver = new ChromeDriver(options);
                  driver.get("https://investopedia.com");
              

              【讨论】:

                猜你喜欢
                • 2017-07-14
                • 2017-08-24
                • 1970-01-01
                • 2019-03-16
                • 1970-01-01
                • 1970-01-01
                • 2014-11-20
                • 2017-05-20
                • 2022-10-01
                相关资源
                最近更新 更多