Java&Selenium&Gradleをやってみようと思いましたがここでつまづき自力で解決できそうにありません。
プログラムの実行の方法が自身が把握している中で2つありますが、結果が異なります。
やったこと
- Sampleプロジェクト直下にてTerminalからコマンド「Gradle Build」、「Gradle Run」を実行。(IDEのRUN同様)
結果。エラーは起きず、予期している通りのプログラムが実行された。⇨「ドライバ:chromedriver」を指定できた。
0. Sample/app/build/distributions/app.tar を解凍し中にある「app」を実行
結果。添付した通りのエラーが起きた。(一部パス修正し添付)エラーには「ドライバーが指定されてない」と。⇨エラーを見ると
ホームディレクトリ直下のドライバを指定している。
わからないこと。
1のように2でも同じ結果を期待したいが、どこをどう修正すればいいかわからない。
ソース
一部のみ記載
setPropertyの第二要素の部分
java
1 public static void main(String[] args) throws InterruptedException { 2 System.out.println(new App().getGreeting()); 3 4 5 // Optional. If not specified, WebDriver searches the PATH for chromedriver. 6 System.setProperty("webdriver.chrome.driver", "chromedriver"); 7 8 WebDriver driver = new ChromeDriver(); 9 try { 10 driver.get("https://google.com"); 11 driver.manage().window().maximize(); 12 13
一応「build.gradle」もあげておく。
Gradle
1/* 2 * This file was generated by the Gradle 'init' task. 3 * 4 * This generated file contains a sample Java application project to get you started. 5 * For more details take a look at the 'Building Java & JVM projects' chapter in the Gradle 6 * User Manual available at https://docs.gradle.org/6.8.2/userguide/building_java_projects.html 7 */ 8 9plugins { 10 // Apply the application plugin to add support for building a CLI application in Java. 11 id 'application' 12} 13 14repositories { 15 // Use JCenter for resolving dependencies. 16 jcenter() 17} 18 19dependencies { 20 // Use JUnit test framework. 21 testImplementation 'junit:junit:4.13' 22 23 // This dependency is used by the application. 24 implementation 'com.google.guava:guava:29.0-jre' 25 26 // Use Selenium for testing. 27 implementation 'org.seleniumhq.selenium:selenium-java:3.141.59' 28 implementation 'org.seleniumhq.selenium:selenium-chrome-driver:3.141.59' 29 implementation 'org.seleniumhq.selenium:selenium-server:3.141.59' 30} 31 32application { 33 // Define the main class for the application. 34 mainClass = 'Sample_Package.App' 35} 36
プロジェクト内フォルダ構成
Sample
├── app
│ ├── bin
│ │ └── 省略
│ ├── build
│ │ ├── classes
│ │ ├── distributions
│ │ │ ├── app
│ │ │ │ ├── bin
│ │ │ │ └── lib
│ │ │ ├── app\ 2
│ │ │ │ ├── bin
│ │ │ │ │ ├── app
│ │ │ │ │ └── app.bat
│ │ │ │ └── lib
│ │ │ ├── app.tar
│ │ │ └── app.zip
│ ├── build.gradle
│ ├── chromedriver
│ └── src
│ └── main
│ ├── java
│ │ └── Sample_Package
│ │ └── App.java
│ └── resources
省略
エラー
Last login: Thu Apr 15 17:00:20 on ttys002
$ ~ % ~/Desktop/Develop/Java/Sample/app/build/distributions/app\ 2/bin/app ; exit;
Hello World!
Exception in thread "main" java.lang.IllegalStateException: The driver executable does not exist: ~/chromedriver
at com.google.common.base.Preconditions.checkState(Preconditions.java:589)
at org.openqa.selenium.remote.service.DriverService.checkExecutable(DriverService.java:146)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:141)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:159)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:355)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:94)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
at Sample_Package.App.main(App.java:20)
Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.
上記がつまずいているエラーです。
コンソール出力されたエラー
動作環境:
機種ID: MacBookPro13,2
プロセッサ名: デュアルコアIntel Core i5
プロセッサ速度: 2.9 GHz
メモリ: 8 GB
システムファームウェアのバージョン: 429.80.1.0.0
Gradle 6.8.2
Build time: 2021-02-05 12:53:00 UTC
Revision: b9bd4a5c6026ac52f690eaf2829ee26563cad426
Kotlin: 1.4.20
Groovy: 2.5.12
Ant: Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM: 15.0.1 (Oracle Corporation 15.0.1+9)
OS: Mac OS X 11.2.3 x86_64
Java
openjdk version "15.0.2" 2021-01-19
OpenJDK Runtime Environment AdoptOpenJDK (build 15.0.2+7)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 15.0.2+7, mixed mode, sharing)
あなたの回答
tips
プレビュー