現在初めて本格的にシステムを作成しています。
他の言語でも同じことかもしれませんが、今回はpythonでのマナー、設計的な質問になります。
実行したいプログラム
あるサイトにログインし、自動操作するプログラム
困っていること
設計?で、ドライバオブジェクトの書き方が気に食わなくて困っています。
現在は、mainファイルとブラウザ操作のファイルで分けており、ブラウザで操作する内容は複数あります。
下記のようなコードです。
main から ブラウザ操作のファイルの操作Aを呼び出したとします。
まず、ドライバを取得して、その後 ログイン→操作Aを行います。
このようなコードですと、ドライバを取得後に全ての操作の引数にドライバを渡さなくてはブラウザを操作できないことになってしまいます。
login(driver) , auto_operation_A(driver) など
ここで、どうすれば、引数のdriverを無くせるか教えて頂きたいです。
python
1#main 2 3import browser_operation as bo 4 5# ブラウザ操作 6result = bo.main_auto_operation_A() 7 8# DBに登録 9 10# ユーザーに通知
python
1from selenium import webdriver 2 3# Aの操作 4def main_auto_operation_A(): 5 result =[] 6 # ドライバの取得 7 driver = Start_up_browser() 8 # ログイン 9 login(driver) 10 # 自動操作 A 11 result = auto_operation_A(driver) 12 return result 13 14# Bの操作 15def main_auto_operation_B(): 16 result =[] 17 # ドライバの取得 18 driver = Start_up_browser() 19 # ログイン 20 login(driver) 21 # 自動操作 B 22 result = auto_operation_B(driver) 23 return result 24 25 26# ドライバの取得 27def Start_up_browser(): 28 29 # ドライバーパス 30 driver_path = 'ドライバーパス' 31 driver = webdriver.Chrome(driver_path) 32 return driver 33
考えた案
###### 1 ブラサウザファイルの全てをクラスにする。
__init__でドライバを取得しておけば、self.driverで解決できる。
これってclassにする必要があるのかな〜と分からなくなってます。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。