获取IllegalAccessError警告

时间:2017-05-02 08:29:33

标签: selenium

我试图在selenium-java中编写我的第一个程序但是在几行的短程序中我得到了以下错误:

线程中的异常" main" java.lang.IllegalAccessError:尝试从类org.openqa.selenium.firefox.FirefoxBinary访问类org.openqa.selenium.os.ExecutableFinder     在org.openqa.selenium.firefox.FirefoxBinary.locateFirefoxBinariesFromPlatform(FirefoxBinary.java:418)     在org.openqa.selenium.firefox.FirefoxBinary。(FirefoxBinary.java:108)     在java.util.Optional.orElseGet(未知来源)     在org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:204)     在org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:108)     在org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:104)     在com.packt.selenium.chapter1.NavigateToAUrl.main(NavigateToAUrl.java:12)

我的代码是:

package com.packt.selenium.chapter1;   
import org.openqa.selenium.WebDriver;    
import org.openqa.selenium.firefox.FirefoxDriver;

public class NavigateToAUrl 
{
    public static void main(String[] args) 
    {
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.google.com");

    }
}

3 个答案:

答案 0 :(得分:1)

在我的情况下,它是由类路径上的不同版本的selenium工件造成的。

我使用gebish:org.grails.plugins:geb:1.1.1取决于:

  • org.seleniumhq.selenium:selenium-api:2.53.1
  • org.seleniumhq.selenium:selenium-remote-driver:2.53.1
另一方面,我尝试使用

org.seleniumhq.selenium:selenium-firefox-driver:3.4.0

selenium-apiselenium-remote-driverselenium-support升级到版本3.4.0后一切正常。

答案 1 :(得分:0)

要使用Selenium 3.4.0和Mozilla Firefox浏览器53.x,您需要从here下载最新的geckodriver v0.16.1。将其保存在您的机器中提供geckodriver的绝对路径。通过对您自己的代码进行一些简单的调整,此代码可以正常执行。

    System.setProperty("webdriver.gecko.driver", "C:\\Utility\\BrowserDrivers\\geckodriver.exe");
    WebDriver driver =  new FirefoxDriver();
    driver.manage().window().maximize();
    driver.get("http://www.google.com");

如果这有助于您,请告诉我。

答案 2 :(得分:-1)

尝试以下代码:

package com.packt.selenium.chapter1;  
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;

public class sample {
    public static void main(String[] a) {
        WebDriver driver;
        System.setProperty("webdriver.firefox.marionette", "C:\\geckodriver.exe");
        driver = new FirefoxDriver();
        driver.manage().window().maximize();
        driver.manage().timeouts().implicitlyWait(160, TimeUnit.SECONDS);
        driver.get("http://google.com");

    }
}

确保

1)Selenium server standalone jar文件已添加到您的项目中 2)Client combined jar文件被添加到您的项目中,该文件包含selenium java jar文件包 3)Geckodriver path是正确的,geckodriver.exe出现在上述位置。

不要坚持硒中的主要方法。将TestNG与selenium集成,然后编写脚本。如果您使用TestNG,您将获得许多其他功能。推荐!