如何使用 Selenium Python 运行 Microsoft Edge 无头?

问题描述 投票:0回答:4

使用 Chrome,您可以在创建驱动程序时添加选项。你就这样做

options = Options()
options.headless = True
driver = webdriver.Chrome(PATH\TO\DRIVER, options=options)

但由于某种原因,当尝试使用 Microsoft Edge 执行相同操作时

options = Options()
options.headless = True
driver = webdriver.Edge(PATH\TO\DRIVER, options=options)

我收到此错误

TypeError: __init__() got an unexpected keyword argument 'options'

由于某种原因,Edge 的驱动程序不接受除文件路径之外的任何其他参数。有没有办法像 Chrome 一样运行 Edge 无头并添加更多选项?

python selenium microsoft-edge
4个回答
6
投票
  options = EdgeOptions()
  options.use_chromium = True
  options.add_argument("headless")
  options.add_argument("disable-gpu")

尝试上面的代码,你必须启用 chromium 才能启用 headless

https://learn.microsoft.com/en-us/microsoft-edge/webdriver-chromium/?tabs=python

这仅适用于新的 Edge Chromium,不适用于 Edge 旧版本。在旧版本中不支持无头

完整代码

from msedge.selenium_tools import EdgeOptions
from msedge.selenium_tools import Edge

# make Edge headless
edge_options = EdgeOptions()
edge_options.use_chromium = True  # if we miss this line, we can't make Edge headless
# A little different from Chrome cause we don't need two lines before 'headless' and 'disable-gpu'
edge_options.add_argument('headless')
edge_options.add_argument('disable-gpu')
driver = Edge(executable_path='youredgedriverpath', options=edge_options)

3
投票

webdriver.Edge
不接受任何
options
所以我将其切换为以下内容: 这对我有用。

        # imports
        from selenium import webdriver
        from msedge.selenium_tools import EdgeOptions

        # options
        options = EdgeOptions()
        options.use_chromium = True
        options.add_argument("--headless")
        options.add_argument("disable-gpu")

        browser = webdriver.Chrome(
            executable_path="resources/msedgedriver.exe", options=options)
        browser.get(gen_token)

我使用的 Microsoft Edge 版本是:

微软边缘 版本 89.0.774.57(官方版本)(64 位)

这对我有用。


0
投票

您可以在 Python 中使用 Selenium 运行 Headless Microsoft Edge,如下所示:

from selenium import webdriver

options = webdriver.EdgeOptions()
options.add_argument("--headless=new") # Here
driver = webdriver.Edge(options=options)

或者:

from selenium import webdriver
from selenium.webdriver.edge.options import Options

options = Options()
options.add_argument("--headless=new") # Here
driver = webdriver.Edge(options=options)

此外,下面的示例可以使用 Headless Microsoft Edge、Selenium、pytest-djangoDjango 来测试 Django Admin:

# "tests/test.py"

import pytest
from selenium import webdriver
from django.test import LiveServerTestCase

@pytest.fixture(scope="class")
def edge_driver_init(request):
    options = webdriver.EdgeOptions()
    options.add_argument("--headless=new")
    edge_driver = webdriver.Edge(options=options)
    request.cls.driver = edge_driver
    yield
    edge_driver.close()

@pytest.mark.usefixtures("edge_driver_init")
class Test_URL_Edge(LiveServerTestCase):
    def test_open_url(self):
        self.driver.get(("%s%s" % (self.live_server_url, "/admin/")))
        assert "Log in | Django site admin" in self.driver.title

或者:

# "tests/conftest.py"

import pytest
from selenium import webdriver

@pytest.fixture(scope="class")
def edge_driver_init(request):
    options = webdriver.EdgeOptions()
    options.add_argument("--headless=new")
    edge_driver = webdriver.Edge(options=options)
    request.cls.driver = edge_driver
    yield
    edge_driver.close()
# "tests/test.py"

import pytest
from django.test import LiveServerTestCase

@pytest.mark.usefixtures("edge_driver_init")
class Test_URL_Edge(LiveServerTestCase):
    def test_open_url(self):
        self.driver.get(("%s%s" % (self.live_server_url, "/admin/")))
        assert "Log in | Django site admin" in self.driver.title

-1
投票

适用于 Edge 浏览器

options = EdgeOptions()

options.use_chromium = True

options.add_argument('--allow-running-insecure-content')

options.add_argument("--ignore-certificate-errors")

self.wd = webdriver.Chrome(executable_path=EdgeChromiumDriverManager().install(), options=options)

self.wd.maximize_window()

适用于 Edge 无头

options = EdgeOptions()

options.use_chromium = True

options.add_argument("--headless")

options.add_argument("disable-gpu")

options.add_argument('--allow-running-insecure-content')

options.add_argument('--ignore-certificate-errors')

self.wd = webdriver.Chrome(executable_path=EdgeChromiumDriverManager().install(), options=options)

self.wd.maximize_window()

© www.soinside.com 2019 - 2024. All rights reserved.