2017-05-03 77 views
0

我想定義一個默認的webdriver狀態。 Webdriver的這種狀態是在登錄並創建腳本之後,該腳本負責訪問網站並創建一個我希望繼續測試的新工作區。我想從這個起點開始構建其餘的類。 返回此驅動程序並執行下一個命令的工作,但在我執行工作區中的第一個操作後,我不能返回到所需的默認狀態,所以我可以調用其他具有不同功能的個人類在網站上。定義WebDriver的默認狀態,以繼續在其他情況下使用

登錄腳本:新的Firefox的驅動程序中,使用getURL,填寫信息,點擊確認,返回驅動程序

創建工作區:登錄腳本,繼續與菜單之間nagivagtion和工作區的信息填寫,並建立它,並返回它。

代碼很長,不會粘貼在這裏。 我的問題是,在創建一個工作區並開始進一步的操作之後,每次調用一個新操作時,selenium都會重新執行所有登錄操作和創建操作。 我不是一個非常有經驗的編碼員,所以我正在尋求幫助。 有沒有我的方式,我可以定義一個公共變量,可以持有這種狀態的驅動程序? 如何在執行操作後恢復到此狀態?

我目前分配WebDriver驅動程序= logInAndCreate()在每個動作的第一行,顯然處理這2,我結束它在回報驅動程序;
我在網站上已經定義的動作有幾行是代碼處理導航,查找和行爲webelements等幾行。有很多的選擇,並且爲所有人編寫自立式測試用例都不會發生,所以我決定把行動安排到課堂上,並從這些部分構建我的例子。

+1

我看到你有些疑惑,但他們應該更具體地回答。這個問題可以被認爲是「太寬泛」或「主要是基於意見」。請閱讀以下鏈接以更熟悉SO:[Tour](http://stackoverflow.com/tour)| [如何問](http://stackoverflow.com/help/how-to-ask)| [最小,完整和可驗證示例](http://stackoverflow.com/help/mcve) – Tom

+1

代碼中的流程由您定義。如果沒有必要,您不必每次都調用登錄。我建議你檢查頁面對象模式。在這裏您可以找到兩個鏈接:[測試設計注意事項](http://www.seleniumhq.org/docs/06_test_design_considerations.jsp)和[頁面對象 - Martin Flower文章](https://martinfowler.com/bliki/ PageObject.html)。我認爲這是一個很好的開始,可以澄清您可能面臨的一些疑問。 – Tom

+1

偉大的參考@Tom謝謝 – DebanjanB

回答

1

WebDriver沒有任何狀態,它只是一個連接到瀏覽器,您可以用來發送命令到瀏覽器。因此,您無法使用WebDriver恢復網站的狀態。另外,函數返回driver也不會完成任何操作,因爲您不改變函數內部的驅動程序的狀態。

也許你最好的選擇是和你的開發人員一起,看看你是否有辦法創建一個包含狀態的cookie等。例如,也許一旦用戶登錄後,就會創建一個站點cookie來指示用戶已登錄。而不是使用用戶界面登錄,您可以創建正確格式的cookie,使站點處於已登錄的用戶。這只是一個例子,但這應該足以讓你開始。

+0

整理出來,碰巧是我比餅乾更缺乏知識。 我根本不知道我可以在我班的名字後面括號中使用Webdriver驅動程序。我是一個初學者,它很明顯:D – Ewhenn