2014-02-27 85 views
0

我是新來的硒。我需要在我的代碼中得到以下內容。如何使用Selenium Webdriver?

我有:

  1. Login.Java - >是否登錄網站。
  2. settings.java - >是否更改設置中的某些信息。
  3. 註銷 - >註銷網站。

每個單一的代碼運行良好...現在我需要以下面的方式到達。

創建Sanity.Java - >

調用Login.java 調用settings.java 調用logout.java

runng login.java後,調用settings.java當它打開另一個瀏覽器..而是運行相同的窗口,如何做到這一點。

我的計劃是:我將打破各功能,我會調用這些在main.java文件中的每個功能紙條..

感謝

回答

0

你也可以認爲與測試框架TestNG的幫助泡吧您硒webdriver的測試,在此你會寫一個TestSuite XML的說sanity.xml,寫3測試調用您的類文件(包括方法名稱)的節點。現在讓我們假設您創建一個BaseTest類,該類可以被每個Test類擴展,如login.java,settings.java & logout.java。 TestNG中你有一個像@BeforeSuite,@Test,@AfterSuite註釋

所以你會寫在@BeforeSuite,做你的webdriver的對象創建BaseTest類的方法,使這種驅動程序的靜態在你的基類,這將是在您的@BeforeSuite方法中只創建一次,稍後將直接用於將來的測試。

@Test註解將在login.java的方法來使它考慮作爲試驗方法

在@AfterSuite你會寫代碼關閉您的webdriver實例。 你BaseTest的結構看起來有點像下面

public class BaseTest{ 
    public static WebDriver driver; 

    @BeforeSuite(alwaysRun = true) 
    public void startSuite(){ 
     driver = new FirefoxDriver(); 
    } 

    @AfterSuite(alwaysRun = true) 
    public void endSuite(){ 
     driver.quit(); 
    } 

} 

public class Login extends BaseTest{ 
    @Test 
    public void doLogin(){ 
     WebElement username = driver.findElement(By.xpath("//input[@name='username']")); 
     username.sendKeys("USERNAME"); 
    } 
} 

希望這有助於你

0

你的計劃看起來不錯。
新瀏覽器在每個類上打開的原因是您正在其中創建WebDriver的新實例。
喜歡的東西:WebDriver driver = new FirefoxDriver()
您應該創建的webdriver 一次測試或主要方法它作爲參數傳遞給操作方法。
不要忘記在完成流程後關閉它。

祝你好運,
Ittiel

0

我來到這個方法..任何建議,它看起來好嗎?

1. DriverManager.Java 

a. Created static driver instance and the method getDriver. 

2. Login.java 

a. Imported the Drivermanager package. 
b. WebDriver driver=DriverManager.getWebDriver(); 
c. test Continiues 

同爲設置和註銷..

現在我稱這些都在理智..

+1

看起來不錯,所以用FactoryMethod設計模式的幫助下,你會保持你的驅動程序的單一副本將用於你的所有理智測試。您也可以在您的理智類中保留一個本地引用,它在開始時從DriverManager類實例化,其他方法只使用相同的本地引用,這裏我們不會創建新的實例,而只是重新使用單個實例。 – rsakhale

+0

謝謝隊友.... – ChanGan

相關問題