2016-06-13 7 views
0

私はPythonとセレンの完全なnewbですので、解決策のデザインをお考えください。クラス内で "driver.webdriver"を再利用

私は多くを見てきましたが、私は必要な答えを見つけることができません。

「ナビゲータ」というクラスを作成しようとしていますが、これを使用してシステムを簡単にナビゲートすることができます。

私はクラスから関数を呼び出すことができます。その関数は、私が作業したいウィンドウに移動します。

私が直面してる問題は、ドライバ変数Iが変数を使用するたびに、それは新しいChrome browser開き

driver = webdriver.Chrome('C:/temp/chromedriver.exe') 

です。

新しいブラウザを開くことなく変数を使用する方法はありますか?私の機能は次のようなことをしたい:

Users = driver.find_element_by_link_text("Users") 
Users.click() 
+0

:それは私が達成しようとしている何のためにベストフィットのようです、ここで私は上の私のコードをベースに使用するページです。どのようにテストを実行しますか?フレームワークを使用していますか?もしそうなら、ドライバのインスタンスを作成することができるbeforeメソッドが存在するでしょう。 – RemcoW

+0

また、ページオブジェクトのデザインパターンを使用して調べました。これは、アプリケーションのページのオブジェクトを作成します。このページでは、.navigate()メソッドを作成できます。私が行ったやり方は、私の他のPage ObjectがオーバーライドするBasePageを作成していたので、ページオブジェクトのコンストラクタで設定したURLを使用する.navigate()の実装が1つしかありません。 (私はこれがあなたが達成しようとしていることは確かではありませんが) – RemcoW

答えて

0

ドライバのインスタンスを1つ作成する必要があります。

class commonLib{ 
Webdriver driver = null 
private setDriver() 
{ 
    driver = new FirefoxDriver(); 
} 
public static getDriver(){ 
    return driver; 
} 
} 

ドライバを使用する必要があります。関数getDriver()を利用する。 EX用

: - Users=getDriver().find_element_by_link_text("Users") Users.click()

また、あなたがシングルトンクラスインスタンスが1つだけに関係なく、作成したどのように多くのインスタンス作成されませんwebdriverをクラスのを利用することができ、それは単一のインスタンスを指します。

関連する問題