无法使用 Selenium 启动 Firefox 浏览器

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

无法使用 Selenium 启动 Firefox 浏览器。

下面是我执行的代码:

public class BrowserTest {
    public static void main(String[] args) {
        System.setProperty("webdriver.gecko.driver",
                           "D:\\Selenium\\BrowserJars\\geckodriver113.exe");
        WebDriver driver = new FirefoxDriver();
    }
}

我收到的错误:

Exception in thread "main" org.openqa.selenium.SessionNotCreatedException: Could not start a new session. Response code 500. Message: Expected browser binary location, but unable to find binary in default location, no 'moz:firefoxOptions.binary' capability provided, and no binary flag set on the command line 
Host info: host: 'XXXXXXXXX', ip: 'XXX.XXX.XXX.XXX'
Build info: version: '4.9.1', revision: 'eb2032df7f'
System info: os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_172'
Driver info: org.openqa.selenium.firefox.FirefoxDriver
Command: [null, newSession {capabilities=[Capabilities {acceptInsecureCerts: true, browserName: firefox, moz:debuggerAddress: true, moz:firefoxOptions: {}}]}]
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:136)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:94)
    at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:68)
    at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:165)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.invokeExecute(DriverCommandExecutor.java:183)
    at org.openqa.selenium.remote.service.DriverCommandExecutor.execute(DriverCommandExecutor.java:158)
    at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:543)
    at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:229)
    at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:157)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:150)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:146)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:131)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:127)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:112)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:102)
    at BrowserTest.main(BrowserTest.java:12)

更多详情:

java eclipse selenium-webdriver automation selenium-firefoxdriver
2个回答
0
投票

只需删除下面的行,如果您使用 Selenium

driver.exe
或更高版本,则无需设置属性并提供
v4.6.0
的位置。

System.setProperty("webdriver.gecko.driver",
                           "D:\\Selenium\\BrowserJars\\geckodriver113.exe");

参考文献:Selenium Manager 简介


0
投票

很好的问题和很棒的回应,肖恩!感谢那。我想分享一些我自己对 Selenium 自动驱动程序管理的修改,以便可能增加讨论的深度。确保“geckodriver”可执行文件可在系统路径中访问是至关重要的,所以这就是我的情况:

开发环境:我在 Windows 11 上使用 Java 和 IntelliJ IDEA 开始测试,然后迁移到 Ubuntu 22.04。 测试过程:最初,我使用 System.setProperty() 手动设置 geckodriver 的路径。一切都在 Windows 上完美运行。 切换到 Linux:就在那时我遇到了障碍。在 Windows 上顺利运行的相同测试在 Linux 上却失败了。 我仔细检查了所有依赖项;那里没有问题。 对于 Selenium 网格,我使用了 selenium-server-standalone-3.141.59.jar。为了让服务器启动并运行,我运行了:java -jar selenium-server-standalone-3.141.59.jar。 当我从代码中删除 System.setProperty() 行并确保 Selenium 服务器正常运行后,测试再次顺利运行。 整个事件确实强调了根据操作系统定制设置的重要性。这一切都是为了确保 Selenium 的设置完全符合您系统的特性。如果有人想更深入地了解这一点或有任何疑问,请随时提问。我来这里是为了帮助和分享!

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