【问题标题】:Launch Microsoft Edge Chromium browser using selenium使用 selenium 启动 Microsoft Edge Chromium 浏览器
【发布时间】:2020-05-03 04:08:18
【问题描述】:

我正在尝试使用 selenium 启动 Microsoft Edge Chromium 浏览器。 Microsoft Edge chromium 版本:版本 79.0.309.65(官方构建)(64 位) 从https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/下载驱动文件

使用此代码进行相同的操作,但它给出了无法访问的浏览器异常并且无法正常工作。

1.System.setProperty("webdriver.edge.driver", "C:\\Program Files (x86)\\Microsoft\\Edge Beta\\Application\\msedgedriver.exe");
EdgeOptions options = new EdgeOptions();
BROWSER=properties.getProperty("BrowserName");
options.setCapability(BROWSER, false);
//DesiredCapabilities  m_capability = DesiredCapabilities.edge();
driver= new RemoteWebDriver(new URL("http://localhost:4444/wd/hub"), options);
2.DesiredCapabilities  m_capability = DesiredCapabilities.chrome();
BROWSER=properties.getProperty("BrowserName");`enter code here`
m_capability.setCapability( BROWSER, "chrome" );
driver = new ChromeDriver();
System.setProperty("webdriver.chrome.driver",
                   "C:\\edgedriver_win64-1\\msedgedriver.exe");

【问题讨论】:

  • 我很好奇新的 Edge-Chromium(2020 年 1 月 15 日或之后)是否能够无头执行。有人知道吗?如果是这样,我想制作一个 docker 镜像来运行它。

标签: java selenium


【解决方案1】:

看起来像是兼容性问题。您可以升级或降级您的msedgedriver 驱动程序版本以使其正常工作。

我会推荐你​​使用WebDriverManager

WebDriverManager 允许自动管理二进制文件 Selenium 所需的驱动程序(例如 chromedriver、geckodriver 等) 网络驱动程序。

ma​​ven 依赖

<dependency>
    <groupId>io.github.bonigarcia</groupId>
    <artifactId>webdrivermanager</artifactId>
    <version>3.8.0</version>
    <scope>test</scope>
</dependency>

一旦我们包含此依赖项,您就可以让 WebDriverManager 为您管理 WebDriver 二进制文件。现在您可以为 Edge 设置驱动程序实例了。

public class EdgeDevTest {

    private WebDriver driver;

    @BeforeClass
    public static void setupClass() {
        WebDriverManager.edgedriver().setup();
    }

    @Before
    public void setupTest() {
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.setBinary(
                "C:\\Program Files (x86)\\Microsoft\\Edge Dev\\Application\\msedge.exe");
        EdgeOptions edgeOptions = new EdgeOptions().merge(chromeOptions);
        driver = new EdgeDriver(edgeOptions);
    }

    @After
    public void teardown() {
        if (driver != null) {
            driver.quit();
        }
    }

【讨论】:

  • 您能否提供一个链接,您从该链接中下载了 Edge Chromium 浏览器的驱动程序文件..?
  • 如果你会使用webDriverManager那么你不需要下载它,webdriverManager会自己下载兼容的驱动版本。
  • 感谢 Muzzamil 的回复。
  • 我正在使用您提供的代码,该代码给此行提供错误 new EdgeOptions().merge(chromeOptions); driver = new EdgeDriver(edgeOptions);
【解决方案2】:
public void testservice(){  
    EdgeOptions opt= new EdgeOptions();
    opt.setHeadless();
    WebDriver driver= new EdgeDriver(opt);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-28
    • 1970-01-01
    • 1970-01-01
    • 2011-08-09
    • 2020-10-30
    相关资源
    最近更新 更多