Java、Selenium - 属性 Reader Class - 如何将字符串传递给另一个 class
Java, Selenium - Properties Reader Class - How to pass strings to another class
我对下一个案例有疑问:
我有一个 config.properties 文件用于读取和获取 .属性 文件的信息。这是:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class FileReader {
public Properties configProp;
public Properties firstProps;
public String propertiesFilePath1 = "src/main/resources/data/config.properties";
public String propertiesFilePath2 = "src/main/resources/data/first.properties";
public void ConfigProperties() throws IOException {
// loadPropertyFile is a user defined method to locate multiple properties file
Properties configProp = loadPropertyFile(propertiesFilePath1);
Properties firstProps = loadPropertyFile(propertiesFilePath2);
String browserName = configProp.getProperty("browser");
String urlName = configProp.getProperty("url");
// Access and Store values from Properties File to local variables (first.properties)
String search = firstProps.getProperty("search");
/*String searchValues = firstProps.getProperty("multipleSearchValues");
// Convert input string in an array, based on any unique character
String[] testArray = searchValues.split(",");*/
}
public static Properties loadPropertyFile(String filePath) throws IOException {
// Loading Properties file
File file=new File(filePath);
FileInputStream fis=new FileInputStream(file);
Properties prop=new Properties();
prop.load(fis);
return(prop);
}
}
这是我的 config.properties:
browser = firefox
url = https://www.google.cl
我想将上面 class 的值传递给下一个 class:
public class Browser extends FileReader {
// Take the instance of WebDriver
public WebDriver driver;
public WebDriver initializeBrowser(){
if(browser.equals("chrome")) {
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
} else if(browser.equals("firefox")) {
WebDriverManager.firefoxdriver().setup();
driver = new FirefoxDriver();
} else if(browser.equals("ie")) {
WebDriverManager.iedriver().setup();
driver = new InternetExplorerDriver();
} else if(browser.equals("edge")) {
WebDriverManager.edgedriver().setup();
driver = new EdgeDriver();
} else {
System.setProperty("webdriver.safari.driver","/usr/bin/safaridriver");
driver = new SafariDriver();
}
System.out.println("URL in use: "+ url);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
return driver;
}
public void getConfigFiles() throws IOException {
driver.get(configProp.getProperty(browserName));
}
}
在 browserName 中显示下一个:无法解析符号 'browserName'
我不知道如何将它们(浏览器和 url)传递给浏览器 class。
有人能帮帮我吗?
首先,您需要声明一个Properties configProp
全局变量。只需将它放在 class 左括号之后,再像这样的任何方法声明之前:
public class FileReader {
public Properties configProp;
public String propertiesFilePath = "your path to this file";
public void methodABC() {
properties = new Properties();
properties.load(new FileInputStream(propertiesFilePath));
String browserName = properties.getProperty("browser");
}
}
在另一个 class 中就是这样:
public class ABC {
void method123() {
driver.get(properties.getProperty("url"));
}
}
我对下一个案例有疑问:
我有一个 config.properties 文件用于读取和获取 .属性 文件的信息。这是:
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
public class FileReader {
public Properties configProp;
public Properties firstProps;
public String propertiesFilePath1 = "src/main/resources/data/config.properties";
public String propertiesFilePath2 = "src/main/resources/data/first.properties";
public void ConfigProperties() throws IOException {
// loadPropertyFile is a user defined method to locate multiple properties file
Properties configProp = loadPropertyFile(propertiesFilePath1);
Properties firstProps = loadPropertyFile(propertiesFilePath2);
String browserName = configProp.getProperty("browser");
String urlName = configProp.getProperty("url");
// Access and Store values from Properties File to local variables (first.properties)
String search = firstProps.getProperty("search");
/*String searchValues = firstProps.getProperty("multipleSearchValues");
// Convert input string in an array, based on any unique character
String[] testArray = searchValues.split(",");*/
}
public static Properties loadPropertyFile(String filePath) throws IOException {
// Loading Properties file
File file=new File(filePath);
FileInputStream fis=new FileInputStream(file);
Properties prop=new Properties();
prop.load(fis);
return(prop);
}
}
这是我的 config.properties:
browser = firefox
url = https://www.google.cl
我想将上面 class 的值传递给下一个 class:
public class Browser extends FileReader {
// Take the instance of WebDriver
public WebDriver driver;
public WebDriver initializeBrowser(){
if(browser.equals("chrome")) {
WebDriverManager.chromedriver().setup();
driver = new ChromeDriver();
} else if(browser.equals("firefox")) {
WebDriverManager.firefoxdriver().setup();
driver = new FirefoxDriver();
} else if(browser.equals("ie")) {
WebDriverManager.iedriver().setup();
driver = new InternetExplorerDriver();
} else if(browser.equals("edge")) {
WebDriverManager.edgedriver().setup();
driver = new EdgeDriver();
} else {
System.setProperty("webdriver.safari.driver","/usr/bin/safaridriver");
driver = new SafariDriver();
}
System.out.println("URL in use: "+ url);
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
return driver;
}
public void getConfigFiles() throws IOException {
driver.get(configProp.getProperty(browserName));
}
}
在 browserName 中显示下一个:无法解析符号 'browserName'
我不知道如何将它们(浏览器和 url)传递给浏览器 class。
有人能帮帮我吗?
首先,您需要声明一个Properties configProp
全局变量。只需将它放在 class 左括号之后,再像这样的任何方法声明之前:
public class FileReader {
public Properties configProp;
public String propertiesFilePath = "your path to this file";
public void methodABC() {
properties = new Properties();
properties.load(new FileInputStream(propertiesFilePath));
String browserName = properties.getProperty("browser");
}
}
在另一个 class 中就是这样:
public class ABC {
void method123() {
driver.get(properties.getProperty("url"));
}
}