使用Web驱动程序管理器时获取驱动程序不可执行?

时间:2017-09-06 10:00:02

标签: selenium-webdriver webdrivermanager-java

使用ulimit -a为chromedriver自动化二进制下载但是我得到了#34;驱动程序不可执行"消息。

我知道解决方案/etc/security/limits.conf,但需要一个自动流程!!

任何帮助都非常感激。

由于

2 个答案:

答案 0 :(得分:0)

这里也有类似的问题。 Chrome正在运行但不是Firefox。删除了geckodriver文件夹并尝试过。

但是我在geckdriver上做了chmod 777并且它有效。

package frameWork;

import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.safari.SafariDriver;

import io.github.bonigarcia.wdm.WebDriverManager;

public class BaseClass {

    public WebDriver driver;

    public WebDriver initializeDriver() throws IOException {
        Properties p = new Properties();
        FileInputStream f = new FileInputStream("src/main/java/frameWork/data.properties");

        p.load(f);
        String browser = p.getProperty("browser");

        if(browser.equals("chrome")) {
            WebDriverManager.chromedriver().setup();
            driver = new ChromeDriver();

        } else if(browser.equals("firefox")) {
            WebDriverManager.firefoxdriver().setup();
            driver = new FirefoxDriver();

        } else {
            System.setProperty("webdriver.safari.driver","/usr/bin/safaridriver");
            driver = new SafariDriver();
        }

        //driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        return driver;
    }

}

错误

  

[RemoteTestNG]检测到TestNG版本6.8.0 [TestNG]正在运行:
  /private/var/folders/q1/2vf46m2546926xbq00dw66l40000gp/T/testng-eclipse-1456133345/testng-customsuite.xml

     

[main] INFO io.github.bonigarcia.wdm.WebDriverManager - 最新版本   [wire,geckodriver]是0.20.0 Mar 13,20188 10:49:44 AM   org.apache.http.client.protocol.ResponseProcessCookies processCookies   警告:cookie标头无效:" Set-Cookie:logged_in = no;   域= .github.com;路径= /; expires =星期六,3月13日2038 05:19:44 -0000;   安全;仅Http&#34 ;.无效'到期'属性:2038年3月13日星期六   05:19:44 -0000警告:非法反射访问操作有   发生警告:非法反射访问   org.rauschig.jarchivelib.FileModeMapper $ FileSystemPreferencesReflectionChmodCommand   (文件:/Users/basil/.m2/repository/org/rauschig/jarchivelib/0.7.1/jarchivelib-0.7.1.jar)   方法   java.util.prefs.FileSystemPreferences.chmod(java.lang.String中,INT)   警告:请考虑向维护人员报告   org.rauschig.jarchivelib.FileModeMapper $ FileSystemPreferencesReflectionChmodCommand   警告:使用--illegal-access = warn可以进一步启用警告   非法反射访问操作警告:所有非法访问   在将来的发布将于2018年3月13日上午10:49:50被拒绝   org.rauschig.jarchivelib.FileModeMapper $ UnixPermissionMapper chmod   警告:无法设置文件权限   /Users/basil/.m2/repository/webdriver/geckodriver/macos/0.20.0/geckodriver。   例外是:null [main] WARN io.github.bonigarcia.wdm.Downloader -   设置文件时出错   /Users/basil/.m2/repository/webdriver/geckodriver/macos/0.20.0/geckodriver-v0.20.0-macos.tar.gz   as executable [main] INFO io.github.bonigarcia.wdm.WebDriverManager -   导出webdriver.gecko.driver为   /Users/basil/.m2/repository/webdriver/geckodriver/macos/0.20.0/geckodriver-v0.20.0-macos.tar.gz   FAILED:basePageNavigation java.lang.IllegalStateException:驱动程序   可执行文件不存在:   /Users/basil/.m2/repository/webdriver/geckodriver/macos/0.20.0/geckodriver-v0.20.0-macos.tar.gz     在   com.google.common.base.Preconditions.checkState(Preconditions.java:585)     在   org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:136)     在   org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:131)     在   org.openqa.selenium.firefox.GeckoDriverService.access $ 100(GeckoDriverService.java:41)     在   org.openqa.selenium.firefox.GeckoDriverService $ Builder.findDefaultExecutable(GeckoDriverService.java:141)     在   org.openqa.selenium.remote.service.DriverService $ Builder.build(DriverService.java:339)     在   org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:158)     在   org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:120)     在   org.openqa.selenium.firefox.FirefoxDriver。(FirefoxDriver.java:98)     在frameWork.BaseClass.initializeDriver(BaseClass.java:32)at   frameWork.HomePage.basePageNavigation(HomePage.java:11)​​at   java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(母语   方法)at   java.base / jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   java.base / jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.base / java.lang.reflect.Method.invoke(Method.java:564)at   org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:80)     在org.testng.internal.Invoker.invokeMethod(Invoker.java:714)at   org.testng.internal.Invoker.invokeTestMethod(Invoker.java:901)at at   org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1231)at at   org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:127)     在   org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:111)     在org.testng.TestRunner.privateRun(TestRunner.java:767)at   org.testng.TestRunner.run(TestRunner.java:617)at   org.testng.SuiteRunner.runTest(SuiteRunner.java:334)at   org.testng.SuiteRunner.runSequentially(SuiteRunner.java:329)at at   org.testng.SuiteRunner.privateRun(SuiteRunner.java:291)at at   org.testng.SuiteRunner.run(SuiteRunner.java:240)at   org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)at   org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)at   org.testng.TestNG.runSuitesSequentially(TestNG.java:1198)at at   org.testng.TestNG.runSuitesLocally(TestNG.java:1123)at at   org.testng.TestNG.run(TestNG.java:1031)at   org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:114)     在org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)     在org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

答案 1 :(得分:0)

尝试使用此WebDriverManager版本:

<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
        <dependency>
            <groupId>io.github.bonigarcia</groupId>
            <artifactId>webdrivermanager</artifactId>
            <version>3.8.1</version>
        </dependency>