Test - 在 Ruby + Cucumber 中更改瀏覽器語言之淺談我今天使用者是外國人的重要性(?

安安~大家新年快樂
今年是除夕,在家就是要裝忙一下寫個文章當個文青(x

前幾日在團隊內開始使用了Ruby + Cucumber

因為公司內部有其他團隊是針對國外使用者的專案來做開發的,相對開發內容也會有多國語系的問題

很湊巧的,使用自動化測試也需要更改語系,才能夠測試到不同語系的被測物件

所以有一天.....

我的大腿J老大問我說,欸,你有空嗎?
:怎麼了
:某一個要做國外案子的團隊需要你的幫忙
:我說什麼幫忙?
:他需要更改瀏覽器的語言,但我太忙了沒辦法處理
:哦 好啊,我有空就看看
:對了  我這邊有搜到一個資料,但我怎麼試都不行
:好喔 那你傳給我看看

於是我就開啟了更改瀏覽器語言的搜尋之路

J大提供的歷史源頭:http://blog.lucywyman.me/setting-a-language-with-selenium-webdriver-in-ruby.html

我就去蕪存菁的把Code改成這個樣子

執行之後,他就告訴了我這個錯誤

WARN Selenium [DEPRECATION] :prefs is deprecated. Use Selenium::WebDriver::Chrome::Options#add_preference instead.

OK,看起來很不錯,它告訴我這個方法已經被棄用了

於是我就搜尋了他的推薦 Options的方法

第一個就是他的文件: http://seleniumhq.github.io/selenium/docs/api/rb/Selenium/WebDriver/Chrome/Options.html

進到頁面之後我就Ctrl + F 搜尋 "Options" 找尋我要的內容

這樣子我就找到了使用Options的結構使用方式的細節了

它的結構看起來就像宣告一個options後用selenium webdriver chrome 來 new 一個帶有很多個參數的東西
再來把這個宣告的options丟進driver裡面的options然後帶入這些參數

所以,要怎麼用呢?

這時候到我們使用Selenium-Cucumber建構出來的 env.rb 中的最下層找到 begin 後面,加上這兩行

options = Selenium::WebDriver::Chrome::Options.new(args: ['--lang=en'])
$driver = Selenium::WebDriver.for(:"#{$browser_type}", options: options)

圖示:

就可以了

現在就來執行一下,就可以發現到,它左上角的提示變成英文了。

這樣就成功惹

有興趣可以到這個GitHub的repositry上看到env.rb檔喔

備註

這時候我就開始想了,除了英文之外Chrome還有其他語言啊...

要如何改呢,比如說日文? 之類的

經過查詢之後,在官方文件發現了lang後面的縮寫是使用 ISO-639的格式去做的

所以如果要使用日文的話..試試看 --lang=ja 試試

果然就變成日文啦!!!

超酷der