2012-05-12 34 views
0

我花了3個小時試圖找到解決這個問題,我很遠,我覺得我不得不問的答案。 (我發現類似的帖子 - 下面是我爲什麼要問,儘管找到這些帖子)Selenium更改firefox瀏覽器語言python mac

我正在寫一個程序,進入幾個搜索條件到谷歌 - 並檢索我的網頁的排名。我想知道我的幾個不同的國家SERP的排名。我解決了ip地址問題。但是現在我看到,在給我一個SERP的時候,google正在考慮我的瀏覽器的語言。爲了更接近我的網頁在一個國家的真實排名(我說更接近,因爲我也看到SERP依賴於搜索歷史記錄),我必須使用帶有本地語言的網絡瀏覽器,我是感興趣。

手動更改Firefox中的語言非常困難 - 事實上,您必須安裝幾種不同的語言版本(我也閱讀過關於安裝語言包 - 但不確定這與Firefox 12是否相關) 。我不知道如何讓硒選擇正確的Firefox版本。

我很難理解需要做什麼:我必須指定啓動時使用的Firefox安裝/版本硒是否可以使用web driver.firefox().或者是否可以通過更改Firefox的配置文件來確定瀏覽器語言。

我已經花了一些時間看着配置文件的部分 - 並發現部分evidence(原文),雖然我無法在配置文件中找到任何對語言的引用。

在同一個post中的答案似乎解決了這個問題 - 但我不知道該語言,而且我無法理解實際正在做什麼。

我知道有一個Firefox的add-on用於在語言版本之間切換(您必須首先安裝您需要的不同語言版本的Firefox) - 假設settings選項提到更改「general.useragent.local首選項」I認爲這是一個可以更改的配置文件設置 - 但附加組件需要在您更改語言時重新啓動瀏覽器 - 所以..

我找不到任何有關general.useragent.local在配置文件設置中。

任何一個給我一個正確方向的點將會讓我的一天!

編輯: 忘了提 - 我只知道蟒蛇 - 所以這就是爲什麼我在標題中寫道蟒蛇

+0

爲什麼用Firefox這樣做呢?這聽起來像捲曲或wget的東西。 – robert

回答

3

好吧,我不得不承認,這也許心不是解決這個問題的最好方法,但會回答什麼你需要

from selenium import webdriver 
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary 

binary = FirefoxBinary('path/to/binary') 
profile = webdriver.FirefoxProfile() 
profile.add_extension('path/to/xpi') #XPI needs to be on disk and not downloaded from AMO 
profile.set_preference('general.useragent.local','<enter your value') 

driver = webdriver.Firefox(firefox_binary=binary, firefox_profile=profile) 
# Carry on with what you want 

的pydocs可here

+0

非常感謝您的回覆AutomatedTester !!!你會怎麼說是最好的方法?你有和羅伯特一樣的意見嗎? – Rookie