使用ulimit -a
为chromedriver自动化二进制下载但是我得到了#34;驱动程序不可执行"消息。
我知道解决方案/etc/security/limits.conf
,但需要一个自动流程!!
任何帮助都非常感激。
由于
答案 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>