我试图将我的测试用例导出到一个可执行的jar中,这样我就可以在任何地方或从任何机器上运行它们,但是我遇到了chrom驱动程序不是由system.property设置的问题。我需要一个解决方案,我可以将我的代码导出到可执行jar,并包括chrome drivre,以便它可以运行在任何机器上,即使它没有chrome drivre上。
我尝试在环境变量和selenium路径中包含chrome驱动程序。我还尝试在projectresources下添加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;
}
我把这个方法叫做:
公共类添加\u 3d \u打印机\u顺序{
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驱动程序,但在其他机器上它不工作
1条答案
按热度按时间j9per5c41#
您可以在项目中创建一个名为driver的文件夹,并可以在该文件夹中插入chromedriver,还可以使用从该位置选择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的确切路径,然后它可以在任何机器上使用。