如何在没有 ChromeDriver.exe 的情况下在 Maven 中使用 selenium-chrome-driver
How to work with selenium-chrome-driver in Maven without ChromeDriver.exe
我为打开 Chrome 添加了以下依赖项和代码,但浏览器未打开。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>2.50.0</version>
</dependency>
我的代码:-
package example;
import org.openqa.selenium.WebDriver;`
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class DepChrome {
@Test
public void testBrowser() {
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
}
}
添加如下依赖:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.0.0</version>
<!-- <scope>test</scope> -->
</dependency>
来源:从下面复制新的依赖版本URL:
https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager
使用下面的代码:
WebDriver driver = null;
WebDriverManager.chromedriver().browserVersion("77.0.3865.40").setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("enable-automation");
options.addArguments("--no-sandbox");
options.addArguments("--disable-infobars");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-browser-side-navigation");
options.addArguments("--disable-gpu");
driver = new ChromeDriver(options);
driver.get("https://www.google.com/");
基本上下面一行代码就搞定了,下面代码下载特定版本
WebDriverManager.chromedriver().browserVersion("77.0.3865.40").setup();
您可以从下面获得所需的版本 URL:
https://chromedriver.storage.googleapis.com/index.html
如果你正在寻找上面 chrome 驱动程序 URL
上的最新依赖项,你也可以使用下面的代码而不是上面的代码
WebDriverManager.chromedriver().setup();
或(旧方法)
您需要给出 chrome 二进制文件的路径,如下所示:
System.setProperty("webdriver.chrome.driver", "C:\pathto\my\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
从 selenium 站点下载 chrome 的二进制文件,如下所示:-
http://chromedriver.storage.googleapis.com/index.html?path=2.21/
现在提供二进制文件到 selenium 的路径:-
System.setProperty("webdriver.chrome.driver", "C:\pathto\my\chromedriver.exe");
还有一件事需要注意。如果您使用 windows 然后使用反斜杠 \
如果您使用 mac 或 linux 然后使用正斜杠 //
来设置路径。
希望对您有所帮助:)
检查下面的代码 -
package example;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import io.github.bonigarcia.wdm.WebDriverManager;
public class DepChrome {
@Test
public void testBrowser() {
WebDriver driver;
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
driver.get("https://google.com");
String title = driver.getTitle();
System.out.println(title);
driver.quit();
}
}
有两种方法。
最简单的方法是从这个位置
下载 chromedriver
然后在您的项目中创建一个源文件夹。 (例如:浏览器Drivers)并将下载的库添加到其中。
然后使用 setProperty 命令在自动化脚本中设置 chrome driver 路径,如下所示。
System.setProperty("webdriver.chrome.driver", "BrowserDrivers/chromedriver.exe");
不过还有一个办法。这更适合 maven 构建。
将以下依赖项添加到 POM.xml 文件中。
有2个依赖项。一个用于 Chrome Driver。但是要使用 chrome driver 依赖项,您必须添加 webdrivermanager 依赖项。它是浏览器的强制依赖项 driver。所以总是你必须添加它们。
有关详细信息,请参阅此 link Github Webdriver manager link
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>2.2.5</version>
</dependency>
并添加 chrome driver 依赖项。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>2.50.0</version>//Your chrome driver version
</dependency>
然后在您的自动化脚本中使用此行而不是 System.setProperty 命令来声明 chrome driver.
ChromeDriverManager.getInstance().setup();
更新: the use of ChromeDriverManager is deprecated,改用这个:
import static io.github.bonigarcia.wdm.DriverManagerType.CHROME;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
WebDriverManager.getInstance(CHROME).setup();
在 Maven 中,使用 ChromeDriver.exe
:
import static io.github.bonigarcia.wdm.DriverManagerType.CHROME;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.testng.annotations.Test;
public class MavenTest {
@Test
public void TestMaven()
{
System.setProperty("webdriver.chrome.driver", "D:\Sumit_Backup\Automation\Workspace\Maven\src\Browser\chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.get("http://testng.org/doc/maven.html");
driver.manage().window().maximize();
}
}
有了下面两个maven依赖,你根本不需要设置系统属性,这样就可以了
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>${webdriver-manager.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>${selenium-chrome-driver}</version>
</dependency>
WebDriver driver;
@BeforeSuite
public void setUp(){
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
driver.get("http://www.ebay.in");
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.MILLISECONDS);
}
我为打开 Chrome 添加了以下依赖项和代码,但浏览器未打开。
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>2.50.0</version>
</dependency>
我的代码:-
package example;
import org.openqa.selenium.WebDriver;`
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
public class DepChrome {
@Test
public void testBrowser() {
WebDriver driver = new ChromeDriver();
driver.manage().window().maximize();
}
}
添加如下依赖:
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.0.0</version>
<!-- <scope>test</scope> -->
</dependency>
来源:从下面复制新的依赖版本URL:
https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager
使用下面的代码:
WebDriver driver = null;
WebDriverManager.chromedriver().browserVersion("77.0.3865.40").setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
options.addArguments("enable-automation");
options.addArguments("--no-sandbox");
options.addArguments("--disable-infobars");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-browser-side-navigation");
options.addArguments("--disable-gpu");
driver = new ChromeDriver(options);
driver.get("https://www.google.com/");
基本上下面一行代码就搞定了,下面代码下载特定版本
WebDriverManager.chromedriver().browserVersion("77.0.3865.40").setup();
您可以从下面获得所需的版本 URL:
https://chromedriver.storage.googleapis.com/index.html
如果你正在寻找上面 chrome 驱动程序 URL
上的最新依赖项,你也可以使用下面的代码而不是上面的代码WebDriverManager.chromedriver().setup();
或(旧方法)
您需要给出 chrome 二进制文件的路径,如下所示:
System.setProperty("webdriver.chrome.driver", "C:\pathto\my\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("http://www.google.com");
从 selenium 站点下载 chrome 的二进制文件,如下所示:- http://chromedriver.storage.googleapis.com/index.html?path=2.21/
现在提供二进制文件到 selenium 的路径:-
System.setProperty("webdriver.chrome.driver", "C:\pathto\my\chromedriver.exe");
还有一件事需要注意。如果您使用 windows 然后使用反斜杠 \
如果您使用 mac 或 linux 然后使用正斜杠 //
来设置路径。
希望对您有所帮助:)
检查下面的代码 -
package example;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.testng.annotations.Test;
import io.github.bonigarcia.wdm.WebDriverManager;
public class DepChrome {
@Test
public void testBrowser() {
WebDriver driver;
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
driver.get("https://google.com");
String title = driver.getTitle();
System.out.println(title);
driver.quit();
}
}
有两种方法。
最简单的方法是从这个位置
下载 chromedriver然后在您的项目中创建一个源文件夹。 (例如:浏览器Drivers)并将下载的库添加到其中。
然后使用 setProperty 命令在自动化脚本中设置 chrome driver 路径,如下所示。
System.setProperty("webdriver.chrome.driver", "BrowserDrivers/chromedriver.exe");
不过还有一个办法。这更适合 maven 构建。 将以下依赖项添加到 POM.xml 文件中。
有2个依赖项。一个用于 Chrome Driver。但是要使用 chrome driver 依赖项,您必须添加 webdrivermanager 依赖项。它是浏览器的强制依赖项 driver。所以总是你必须添加它们。 有关详细信息,请参阅此 link Github Webdriver manager link
<dependency> <groupId>io.github.bonigarcia</groupId> <artifactId>webdrivermanager</artifactId> <version>2.2.5</version> </dependency>
并添加 chrome driver 依赖项。
<dependency> <groupId>org.seleniumhq.selenium</groupId> <artifactId>selenium-chrome-driver</artifactId> <version>2.50.0</version>//Your chrome driver version </dependency>
然后在您的自动化脚本中使用此行而不是 System.setProperty 命令来声明 chrome driver.
ChromeDriverManager.getInstance().setup();
更新: the use of ChromeDriverManager is deprecated,改用这个:
import static io.github.bonigarcia.wdm.DriverManagerType.CHROME; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; import io.github.bonigarcia.wdm.WebDriverManager; WebDriverManager.getInstance(CHROME).setup();
在 Maven 中,使用 ChromeDriver.exe
:
import static io.github.bonigarcia.wdm.DriverManagerType.CHROME;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import io.github.bonigarcia.wdm.WebDriverManager;
import org.testng.annotations.Test;
public class MavenTest {
@Test
public void TestMaven()
{
System.setProperty("webdriver.chrome.driver", "D:\Sumit_Backup\Automation\Workspace\Maven\src\Browser\chromedriver.exe");
WebDriver driver= new ChromeDriver();
driver.get("http://testng.org/doc/maven.html");
driver.manage().window().maximize();
}
}
有了下面两个maven依赖,你根本不需要设置系统属性,这样就可以了
<!-- https://mvnrepository.com/artifact/io.github.bonigarcia/webdrivermanager -->
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>${webdriver-manager.version}</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-chrome-driver -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-chrome-driver</artifactId>
<version>${selenium-chrome-driver}</version>
</dependency>
WebDriver driver;
@BeforeSuite
public void setUp(){
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
driver.get("http://www.ebay.in");
driver.manage().timeouts().implicitlyWait(5000, TimeUnit.MILLISECONDS);
}