こんばんは、ころすけ(@wg_koro)です。
以前、Androidの実機でSelenium自動テストを走らせる方法を書きましたが、あれはちょっとめんどいですね。
今度はもうちょっとお手軽にモバイルWebアプリをテストします。
ChromeのUser agentを変更して使う
Chrome DriverはUser agentを変更して起動させることができます。今回はこれをやってみます。あ、スクリプトはPythonで書いていマス。
やり方は簡単。webdriverにOptionを食わせるだけ。
OptionにUser agentを指定します。(今回はiPhoneを指定しました)
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。
# キャプチャー
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でざくっとテストして、最終テストは実機で行う、というのが簡単にできますね。うーむ、楽だ。