如何使用壁虎可执行与硒

2022-09-01 01:59:33

我正在使用Firefox 47.0和Selenium 2.53。最近,它们一直是Selenium和Firefox之间的错误,这使得代码无法正常工作。解决方案之一是使用Mariannette驱动程序。

我按照这个网站的指示,将此新驱动程序与RemotWebDriver一起使用,但我一直遇到错误:

WARN - 异常:线程“main”org.openqa.selenium.WebDriverException中的异常:驱动程序可执行文件的路径必须由webdriver.gecko.driver system属性设置;有关详细信息,请参阅 https://github.com/jgraham/wires。最新版本可以从....

到目前为止,我尝试过的代码非常简单:

public class Test {
    static WebDriver driver;
    static Wait<WebDriver> wait;
    public static void main(String[] args) throws MalformedURLException {
        System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");
        DesiredCapabilities cap = DesiredCapabilities.firefox();
        cap.setCapability("marionette", true);
        cap.setBrowserName("firefox");
        driver = new RemoteWebDriver(new URL("http://192.168.117.135:5555/wd/hub"), cap);//true to enable the JS
        wait = new WebDriverWait(driver, 3000);
        final String url = "https://www.google.com/";

        JavascriptExecutor js = (JavascriptExecutor) driver;

        try {
            driver.navigate().to(url);
        } finally {
            driver.close();
        }
    }
}

我确信通往壁虎司机.exe的道路是正确的,我不明白我在哪里犯了错误。

编辑1:我尝试了以下代码:

public class Test {
    static WebDriver driver;
    static Wait<WebDriver> wait;
    public static void main(String[] args) throws MalformedURLException {
        System.setProperty("webdriver.gecko.driver", "C:\\Selenium\\geckodriver.exe");

        driver = new MarionetteDriver();
        wait = new WebDriverWait(driver, 3000);
        final String url = "https://www.google.com/";

        JavascriptExecutor js = (JavascriptExecutor) driver;

        try {
            driver.navigate().to(url);
        } finally {
            driver.close();
        }
    }
}

它正在工作,似乎问题来自RemoteWebDriver和壁虎驱动程序,你们中的任何一个人都有关于它的新闻?


答案 1

最近Selenium推出了Selenium 3,如果你正在尝试使用Firefox最新版本,那么你必须使用GeckoDriver:

System.setProperty("webdriver.gecko.driver","G:\\Selenium\\Firefox driver\\geckodriver.exe");
WebDriver driver = new FirefoxDriver();

您可以在此处查看完整文档


答案 2

我也面临同样的问题,并在一天后得到了解决方案:

异常即将到来,因为系统需要Geckodriver来运行Selenium测试用例。您可以在Java中的main Method下尝试此代码

    System.setProperty("webdriver.gecko.driver","path of/geckodriver.exe");
    DesiredCapabilities capabilities=DesiredCapabilities.firefox();
    capabilities.setCapability("marionette", true);
    WebDriver driver = new FirefoxDriver(capabilities);

有关详细信息,您可以转到此 https://developer.mozilla.org/en-US/docs/Mozilla/QA/Marionette/WebDriver 链接。

如果问题没有得到解决,请告诉我。


推荐