UAを切り替えたSelenium ChromeDriverで自動テスト

こんばんは、ころすけ(@wg_koro)です。

Selenium

以前、Androidの実機でSelenium自動テストを走らせる方法を書きましたが、あれはちょっとめんどいですね。

今度はもうちょっとお手軽にモバイルWebアプリをテストします。

ChromeのUser agentを変更して使う

Chrome DriverはUser agentを変更して起動させることができます。今回はこれをやってみます。あ、スクリプトはPythonで書いていマス。

やり方は簡単。webdriverにOptionを食わせるだけ。
OptionにUser agentを指定します。(今回はiPhoneを指定しました)

[python]
import os
from selenium import webdriver

options = webdriver.ChromeOptions()
options.add_argument(‘–user-agent=Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25’)

driver = webdriver.Chrome(chrome_options=options)
driver.get("http://www.yahoo.co.jp/")
[/python]

これでiPhoneのUAを持ったChromeが立ち上がります。

もちろん、javascriptの実行や画面キャプチャー撮影もOK。

[python]
# キャプチャー
current = os.path.realpath(os.path.dirname(__file__))
driver.get_screenshot_as_file(os.path.join(current, ‘test.png’))

# js実行
javascript = u"""
var hage = ‘テスト!’;
function hogeFuga(str){
alert(str);
}

hogeFuga(hage);
"""
driver.execute_script(javascript)
[/python]

撮れたキャプチャー
スクリーンキャプチャ

そういえばほぼ同じスクリプトで実機も自動操縦できます。UA偽装したChromeでざくっとテストして、最終テストは実機で行う、というのが簡単にできますね。うーむ、楽だ。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください