TestNGを使用して、各テストケースで次のコードを繰り返す必要はありません。ご提案をお願いします。 グローバル変数としてprop
とfis
を保存し、openBrowser()
で初期化してから、他の方法で使用しましたが、私は小道具にNullPointerExeption
を取得します。下の行を追加すると、私はそれを取得しません。Javaでコードセレンを繰り返す必要はありません
プロパティファイルを一度ロードして再利用したいだけです。
Properties prop = new Properties();
FileInputStream fis = new
FileInputStream("C:\\Users\\xxxxx\\URL.properties");
prop.load(fis);
コード:
public class CallUrl {
WebDriver driver;
Properties prop ;
FileInputStream fis;
@BeforeTest
public void openBrowser() throws IOException
{
Properties prop = new Properties();
FileInputStream fis = new FileInputStream("C:\\Users\\xxxx\\URL.properties");
prop.load(fis); System.setProperty("webdriver.chrome.driver","C:\\Users\\xxxx\\chromedriver.exe");
String browserType = prop.getProperty("Browser");
if (browserType.equals("Chrome"))
{ System.setProperty("webdriver.chrome.driver","C:\\Users\\Ashish\\Documents\\Selenium\\drivers\\chromedriver_win32\\chromedriver.exe");
driver = new ChromeDriver(options);
}
else if(browserType.equals("FireFox"))
{
driver = new FirefoxDriver();
}
}
@Test
public void openURL() throws IOException
{
Properties prop = new Properties();
FileInputStream fis = new FileInputStream("C:\\Users\\xxxxx\\URL.properties");
prop.load(fis);
driver.get(prop.getProperty("URL"));
WebDriverWait myDynamicElement = new WebDriverWait(driver,30); myDynamicElement.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//input[@name='userName']")));
}
@Test(dependsOnMethods={"openURL"})
public void loginToTours() throws InterruptedException, IOException
{
Properties prop = new Properties();
FileInputStream fis = new FileInputStream("C:\\Users\\xxxxx\\URL.properties");
prop.load(fis); driver.findElement(By.name("userName")).sendKeys(prop.getProperty("login")); driver.findElement(By.name("password")).sendKeys(prop.getProperty("password"));
driver.findElement(By.name("login")).click();
}
}
抽象クラス抽象クラス? – chrylis