マルチブラウザ対応。
あるプラットフォームに入った後、別のプラットフォームでの操作を承認する必要があり、その後に戻って操作を続ける必要があります。新しいグローバル辞書を作成し、すべてのブラウザのウェブドライバをグローバル辞書に格納し、ブラウザの操作を指定する必要があるときに、対応するキーを取り出すことです。ここで、キーは重複を防ぐために動的に生成されます。コードは以下の通りです。
def driver_key_num(driver):
"""
動的ドライバはグローバル辞書として出力する。
:param driver: driver
:return:辞書キーだ。
"""
global driver_num
global driver_dict
driver_num_key = "driver_key" + str(driver_num)
now_num = driver_num
driver_num += 1
driver_dict[driver_num_key] = driver
driver_key = list(driver_dict.keys())
return driver_key[now_num]
キーを入力しないと、デフォルトで最新のドライバが使用されます。
def driver_handle(browser_name):
"""
現在のブラウザドライバを切り替える。
:param browser_name: driver鍵だ。
:return:driver,
"""
if browser_name:
return driver_dict[browser_name]
else:
global driver
return driver
マルチブラウザオプション。
def browser_chrome(browser_path="", driver_path=""):
"""
Googleカーネルに対応している。
:param browser_path: ブラウザのパス。
:param driver_path: ドライバーのパスは
:return: driver
"""
global driver
if len(browser_path) > 0:
options = ChromeOptions()
options.binary_location = browser_path
else:
options = None
if len(driver_path) == 0 :
driver_path = "chromedriver"
driver = webdriver.Chrome(executable_path=driver_path, options=options)
return driver
def browser_ie(browser_path="", driver_path=""):
"""
ieカーネル・ブラウザの互換性。
:param browser_path: ブラウザのパス。
:param driver_path: ドライバのパス。
:return: driver
"""
global driver
if len(browser_path) > 0:
options = IeOptions()
options.binary_location = browser_path
else:
options = None
if len(driver_path) == 0 :
driver_path = "IEDriverServer.exe"
driver = webdriver.Ie(executable_path=driver_path, options=options) # Settings-Security-4Areasで一律にセーフモードを有効にする必要がある。
return driver
def browser_firefox(browser_path="", driver_path=""):
"""
Firefoxと互換性がある。
:param browser_path: ブラウザのパス。
:param driver_path: ドライバのパス。
:return: driver
"""
global driver
if len(browser_path) > 0:
options = FirefoxOptions()
options.binary_location = browser_path
else:
options = None
if len(driver_path) == 0 :
driver_path = "geckodriver"
driver = webdriver.Firefox(executable_path=driver_path, options=options)
return driver
次のようにコードを開いてブラウズしてください。
browser_select = {
"br360" : browser_chrome,
"chrome" : browser_chrome,
"firefox": browser_firefox,
"ie": browser_ie
}
driver = browser_select[browser_type](path_selenium, chrome_driver)
xpathをスプライシングして、xpathの中で判断して、switch_to.frameを呼び出して切り替えを行い、操作後にswitch_to.default_content()を使って切り替えを戻すという感じです。
その他、ブラウザを開く、フレームを切り替える、イベントをクリックする、イベントをつかむ、閉じる、リフレッシュする、進む、戻る、ロードする、待つ、ドロップダウンボックスを選択する、プロパティを取得する、情報を入力する、などの基本的な機能は、それほど問題ではなく、スムーズにこなせます。
pythonでseleniumを使った上記の基本操作はオープンソースで公開されています。
オープンソースのアドレス
実際のコードパスは、projectextend





