私は@Service
を作成し、依存関係注入機能を備えたSelenium WebDriverを提供します。その後、Mainクラスで@Autowieredを指定したNullPointerException
import java.io.File;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.springframework.stereotype.Service;
@Service
public class WebDriverService {
public WebDriver webDriverGetter(){
File file = new File(SeleniumApplication.class.getClassLoader().getResource("driver/chromedriver.exe").getFile());
String driverPath=file.getAbsolutePath();
System.out.println("Webdriver is in path: "+driverPath);
System.setProperty("webdriver.chrome.driver",driverPath);
WebDriver driver= new ChromeDriver();
return driver;
}
}
と以下のようにメインクラスでサービスを呼び出します:ここではコードです
public class SeleniumApplication {
@Autowired
static WebDriverService driver;
public static void main(String[] args) {
driver.webDriverGetter().get("https://www.google.com/");
}
}
をしかし、それはして文句を言う:私はC hromeDriver.exe
内に設定している
Exception in thread "main" java.lang.NullPointerException
経路
src\main\resources\driver\chromedriver.exe
pom.xml
に私は春を使用するには
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
そして、どの春の文脈を全くロードせずにメインの方法でオートワイヤリングすると魔法を期待していますか?あなたは現在、主な方法を持っています。このメインメソッドは、変数 'driver'にアクセスします。これは決して設定しないので、nullです。あなたは '@ Autowired'で何か何かをすることは絶対にありません。あなたが実際に春を始めるわけではないからです。あなたが使用しているSpringに応じて、Springを最初に初期化する必要があります。 –
あなたのコメントからヒントを得ましたが、回答を書くことはできますか? – Salman
あなたがスプリングブートを使用しているかどうかを教えてくれるわけではないので、使用しているスプリングに応じて「スタートスプリング」以外に何かを答えるのは難しいです。 –