透過 OperaDriver 對 Opera 瀏覽器做自動化測試

好奇 Selenium 是否有支援較不普及的瀏覽器 Opera?查了一下發現有 OperaDriver 可以用,馬上來玩玩看。

看了說明發現,其實它限制不少,包括只支援舊版的 12.x,不支援現在官網上的最新版 20.0。(舊版 Opera 可在此下載)

除了舊版 Opera,我們還需要下載 Selenium Server standalone 版本,並設定環境變數 SELENIUM_SERVER_JAR 指向剛下載的 Selenium Server JAR 檔案,例如:


export SELENIUM_SERVER_JAR=~/Desktop/selenium-2.40.0/selenium-server-standalone-2.40.0.jar

現在可以用 Python 來操縱 Opera 了!我馬上用 iPython 來跟 Opera 做一下互動,下面這段程式碼是前往 Google 首頁,在搜尋欄位輸入「test」,並做 submit 動作:

from selenium import webdriver
driver = webdriver.Opera()

driver.get('http://www.google.com')
search_field = driver.find_element_by_name('q')
search_field.send_keys('test')
search_field.submit()

執行完發現,搜尋欄位竟然是空白,沒有把「test」輸入進去,到底是哪裡出了問題呢?
試了好久才意外發現,說明文件的最底下清楚寫著:

Known issues
Opera requires full focus when testing on Mac

我的觀察是,只要當下 Opera 沒有拿到 focus,send_keys() 動作會失敗。
這也表示我想用 iPython 互動式地控制 Opera 有困難,我只能把 Python 程式碼先寫好,放在背景執行,這點真是有點可惜!

廣告

發表迴響

Please log in using one of these methods to post your comment:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s