![](/img/trans.png)
[英]How to set path for executable IE drivers in Selenium WebDriver
[英]Selenium webdriver : Multiple drivers
我已經使用3種驅動程序firefox,chrome和IE進行了自動化測試。
static WebDriver driver ;
public static void main(String args[]) {
try {
driver = new FirefoxDriver();
runTest(driver, "FireFox");
//Chrome
System.setProperty("webdriver.chrome.driver","E:/selinium_drivers/chromedriver.exe");
driver = new ChromeDriver();
runTest(driver, "Chrome");
//IE
System.setProperty("webdriver.ie.driver","E:/selinium_drivers/IEDriverServer.exe");
driver = new InternetExplorerDriver();
runTest(driver, "IE");
}
問題是第二個驅動程序在第一個驅動程序完成處理之前就已啟動。 我如何才能停止第二個驅動程序,直到第一個驅動程序完成工作。
public static void runTest(WebDriver driver, String browserName) {
try {
testLogin(driver);
testSignupC(driver);
testSignUpCLogin(driver);
driver.close();
} catch(Exception ex) {
//log stack trace
//Alter(test failed in browser name)
}
}
您沒有提到您的WebDriver版本。 我的評論基於API 2.45。
首先,您應該調用driver.quit()
而不是close()
:
/**
* Close the current window, quitting the browser if it's the last window currently open.
*/
void close();
/**
* Quits this driver, closing every associated window.
*/
void quit();
其次,您應該在finally塊中確保驅動程序關閉:
try {
testLogin(driver);
testSignupC(driver);
testSignUpCLogin(driver);
} catch(Exception ex) {
//log stack trace
//Alter(test failed in browser name)
} finally {
driver.quit();
}
另外,我將在WebDriverException
上用try / catch包圍quit()
,並將driver設置為null
,以防止其重用,因為驅動程序初始化( startClient()
, startSession()
...)是在構造函數中完成的:
} finally {
try {
driver.quit();
catch (WebDriverException e) {
// log if useful else NO OP
}
driver = null;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.