我试图将测试用例导出到可执行jar中,以便可以在任何位置或从任何机器运行它们,但是我发现Chrom驱动程序的问题不是system.properity设置的。我需要一个解决方案,可以将我的代码导出到可执行jar中,并包含Chrome Drivre,以便即使没有Chrome Drivre的代码也可以在任何计算机上运行。
我试图在环境变量和Selenium Path中包含Chrome驱动程序。 我还尝试在项目资源下添加Chrome驱动程序,但没有任何效果。
public WebDriver OpenCPURL() {
PropertyConfigurator.configure("Log4j.properties");
//System.setProperty("webdriver.chrome.driver",
"./chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("disable-infobars");
options.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(options);
//driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
//driver.manage().window().maximize();
wait = new WebDriverWait(driver, 60);
baseUrl = "http://3ddxtesting/newcp/";
driver.get(baseUrl);
user_name = driver.findElement(By.name("username"));
Pass = driver.findElement(By.name("password"));
user_name.sendKeys(username);
Log.info(username);
Pass.sendKeys(Password);
WebElement LoginButton = driver
.findElement(By.xpath("//*[@id=\"contentDiv\"]/form/table/tbody/tr[4]/td[4]/input"));
LoginButton.click();
String Pageheader = driver.findElement(By.cssSelector("#body > nav > a > font")).getText();
assertEquals(Pageheader, "3D | Diagnostix");
return driver;
}
在这里,我将此方法称为:
公共类Add_3D_Printers_Order {
CommonLogin Login = new CommonLogin();
WebDriver driver = Login.OpenCPURL();
driver.findElement(By.id("printerCheck")).click();
Thread.sleep(2000);
String Pageheader_printer = driver.findElement(By.cssSelector("#locationId")).getText();
assertEquals(Pageheader_printer, "Add Order > Printer & Acc");
System.out.println("the assertion is done and the application navigate to the 3d printer page");
Log.info("the application navigate to the 3d printer page succssfully");
此代码在任何一台具有相同路径的Chrome驱动程序但在其他计算机上均无法运行的计算机上运行
答案 0 :(得分:0)
您可以使用名称驱动程序在项目中创建一个文件夹,并将chromedriver插入该文件夹中,然后可以使用System.getProperty("user.dir")
例如,在创建名为driver
的文件夹然后在其中添加chromedriver
之后,使用以下代码行:
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "/driver/chromedriver");
这里System.getProperty("user.dir")
将为您提供项目目录路径,然后在其后附加/driver/chromedriver
将为您提供chromedriver的确切路径,然后它可在任何机器上使用。