Как открыть Microsoft Edge (Chromium) в приватном режиме с помощью Selenium Python 3.x? - PullRequest
0 голосов
/ 05 августа 2020

Есть ли способ открыть Microsoft Edge (Chromium) в приватном режиме с помощью Selenium Python. Я попробовал приведенный ниже код, но он не работает.

        options = webdriver.EdgeOptions()

        # try set --incognito option, but it does not work
        options.add_argument("--incognito")

        # try inprivate mode try set w3c option, but it does not work
        capabilities = DesiredCapabilities.EDGE
        capabilities['ms:inPrivate'] = True            

        self.mWebDriver = webdriver.Edge(executable_path=PATH_EDGE_WEBDRIVER, 
                                        options=options, capabilities=capabilities)

Обновлено: я также пробую «-inprivate» в качестве предложений, но он все еще открывает Edge в обычном окне

        options = webdriver.EdgeOptions()
        options.add_argument("-inprivate")

        self.mWebDriver = webdriver.Edge(executable_path=PATH_EDGE_WEBDRIVER, 
                                        options=options)

@RichEdwards сказал, что опция "-inprivate" работает с исходным кодом C#. Поэтому я думаю, что проблема связана с библиотекой python selenium, а не с msedgedriver

Спасибо.

Ответы [ 2 ]

1 голос
/ 06 августа 2020

Я согласен с предложением @ RichEdwards

Я предлагаю попробовать проверить пункты ниже, которые могут помочь вам сузить круг вопросов и решить проблему.

  1. Убедитесь, что вы используете правильную версию веб-драйвера. проверьте версию своего браузера и загрузите соответствующий драйвер с здесь . Может быть лучше, если вы можете провести тест с последней стабильной версией браузера MS Edge.

  2. Убедитесь, что вы установили инструменты MS Edge Selenium, используя команду ниже.

pip install msedge-selenium-tools selenium == 3.141

Пример кода:

from msedge.selenium_tools import Edge, EdgeOptions

options = EdgeOptions()
options.use_chromium = True
options.add_argument("-inprivate")
options.binary_location = r"C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe"
driver = Edge(executable_path = r"D:\<driver path>\msedgedriver.exe", options = options) # Modify the path here...

# Navigate to URL
driver.get("https://example.com")

# Access web elements

driver.find_element_by_id('fname').send_keys("ABC")   

driver.find_element_by_id('lname').send_keys("XYZ")

driver.quit

Вывод:

введите описание изображения здесь

0 голосов
/ 05 августа 2020

Если вы запускаете Edge из командной строки, вы можете начать инсайта с помощью msedge.exe -inprivate - это то, что вам нужно реплицировать с параметрами.

Вот как я могу сделать это в c#:

case "edgechromium":
    new DriverManager().SetUpDriver(new EdgeConfig(), "83.0.478.56");
    var options = new EdgeOptions();
    options.UseChromium = true;
    options.AddArgument("-inprivate");
    b = new EdgeDriver(options);
    break;

С python и вашим кодом попробуйте только этот аргумент:

        options.add_argument("-inprivate") 

[обновление] Я посмотрел здесь - здесь есть инструменты Edge.

Согласно инструкциям, я установил инструменты:

pip install msedge-selenium-tools selenium==3.141

Я запустил этот обновленный код в python - включая тег inprivate

from msedge.selenium_tools import Edge, EdgeOptions

# Launch Microsoft Edge (Chromium)
options = EdgeOptions()
options.use_chromium = True
options.add_argument("-inprivate")
driver = Edge(options = options)

driver.get ("https://www.google.com")

и получил -inprivate край частный

Я использую: Version 84.0.522.52 (Official build) (64-bit) - последняя версия без обновлений (согласно инструменту обновления)

...