使用Selenium启动的Firefox与系统默认Firefox设置不同

时间:2017-01-28 14:45:40

标签: python selenium firefox

我正在尝试通过请求来自Google的"define"+word查询来收集语音拼写。您可能知道,在" define"之后,您将获得该词的字典定义。然后

但是,当我从Selenium启动Firefox时,它会以谷歌设置为德语的方式启动,这不是我想要的。当我手动启动Firefox时,它被设置为英语,其中我想要的:

enter image description here

现在的问题是,我会得到相同关键词的错误结果:

enter image description here

到目前为止我使用的脚本如下所示:

import time
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys


capabilities = DesiredCapabilities.FIREFOX
capabilities["marionette"] = True
browser = webdriver.Firefox(capabilities=capabilities)

try:
    browser.get('https://google.com')
    search = browser.find_element_by_name('q')
    search.send_keys("define car")
    search.send_keys(Keys.RETURN)
    time.sleep(5)


except Exception as e:
    print (format(e))

如何从脚本启动Firefox,就像手动启动一样?

1 个答案:

答案 0 :(得分:2)

您只能通过设置en-US偏好设置强制Firefox接受intl.accept_languages,您也可以更改国家/地区代码:

profile = webdriver.FirefoxProfile()
profile.set_preference('intl.accept_languages', 'en-US, en')
profile.set_preference('browser.search.countryCode', 'US')   

capabilities = DesiredCapabilities.FIREFOX
capabilities["marionette"] = True

browser = webdriver.Firefox(firefox_profile=profile, capabilities=capabilities)

为我工作。我还尝试将intl.accept_languages设置为de-DE, de,然后在德语中查看Google搜索页面。

或者,您可以导航到http://www.google.com/ncr(“ncr”代表“无国家/地区重定向”),而不是https://google.com