2012-07-02 11 views
6

के लिए पसंदीदा भाषाओं को कैसे निर्दिष्ट करें मैं अपने रिमोट क्रोम ड्राइवर को अंग्रेजी के बजाय जर्मन में पृष्ठों का अनुरोध करने का प्रयास कर रहा हूं। chromedriver documentation और list of chrome preferences के बाद, मैं इस तरह यह सेट करने की कोशिश की:वेबड्राइवर: क्रोम

capabilities.setCapability(ChromeOptions.CAPABILITY, getChromeOptions()); 
    Map<String, String> chromePrefs = new HashMap<String,String>(); 
    chromePrefs.put("settings.language.preferred_languages", "de-DE,de"); 
    capabilities.setCapability("chrome.prefs", chromePrefs); 

और मैं यह लॉग फ़ाइल से chromedriver तक पहुँच जाता है देख सकते हैं:

[0.453][FINE]:  Initializing session with capabilities { 
    "browserName": "chrome", 
    "chrome.prefs": { 
     "settings.language.preferred_languages": "de-DE,de" 
    }, 
    "chromeOptions": { 
     "args": [ "--ignore-certificate-errors" ], 
     "extensions": [ ] 
    }, 
    "platform": "ANY", 
    "version": null 
} 

लेकिन यह अभी भी अंग्रेज़ी पृष्ठों का अनुरोध करता है और यह भी कर सकते हैं वरीयताओं में सामग्री सेटिंग्स खोलकर देखा जाना चाहिए। मैं क्या गलत कर रहा हूं?

उत्तर

3

(संपादित करें) लंबी कहानी कम:

  1. intl.accept_languages कौन-सी भाषाओं एक पेज के लिए अनुरोध कर रहे हैं हेरफेर करने के लिए वरीयताओं की कुंजी है।
  2. (नए और पसंदीदा) ChromeOptions प्रणाली का उपयोग करके वरीयताओं के लिए क्षमता सेट (किसी भी ChromeOptions आप या आपके भाषा बाइंडिंग द्वारा निर्धारित कर रहे हैं अन्यथा यह काम नहीं करेगा, मुद्दे 104 & 95 देखें)।

    प्राथमिकताओं को सेट करने के लिए ChromeOptions समर्थन अभी तक पूरी तरह लागू नहीं किया गया है। तो, दुर्भाग्य से, आप से गंदा वैकल्पिक हल उपयोग करने के लिए मेरी comment 6 to Issue 95

    एक विकल्प इच्छित भाषा सेटिंग्स के साथ एक उपयोगकर्ता प्रोफ़ाइल बना सकते हैं और यह उपयोग करने के लिए (कमांड लाइन) विकल्प सेट करने ChromeOption उपयोग करने के लिए हो सकता है प्रोफ़ाइल, जैसा कि chromedriver capabilities wiki page पर उल्लिखित है।

+0

यह एक बहुत बनाता है:

खपच्ची साथ सेलेनियम

from selenium.webdriver import Chrome from selenium.webdriver.chrome.options import Options from splinter.driver.webdriver import BaseWebDriver, WebDriverElement options = Options() options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'}) browser = BaseWebDriver() browser.driver = Chrome(chrome_options=options) browser.visit('http://example.com') 

साथ इस काम वहाँ 2 विकल्प है भावना का, खासकर मैं टी एक ही कुंजी फ़ायरफ़ॉक्स का उपयोग करता है। लेकिन यह काम नहीं करता है, या तो:/ – c089

+0

हाँ, अब मैं इसे पाइथन से कॉल के लिए भी पुष्टि कर सकता हूं। मैंने जो कुछ गलत सोचता है (बग रिपोर्ट समेत) के बारे में कुछ पाठ जोड़ा और यह तय होने तक वैकल्पिक समाधान/कार्यवाही क्या हो सकती है। शायद यह वह उत्तर नहीं है जिसकी आपने आशा की थी। लेकिन मुझे उम्मीद है कि यह कुछ हद तक मदद करता है। – zpea

+0

आपके प्रयास और बग को दर्ज करने के लिए धन्यवाद :) – c089

0

Pyhon उदाहरण

नोट: मैं "एन, en_US" स्वीकार किए जाते हैं भाषा के साथ परीक्षण करते हैं, लेकिन मैं नहीं दिख रहा है कारण है कि यह de_DE साथ जब तक काम नहीं होगा के रूप में स्थान पर उपलब्ध है प्रणाली।

किरच केवल API

from splinter import Browser 
from splinter.driver.webdriver.chrome import Options 

options = Options() 
options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'}) 

browser = Browser('chrome', options=options) 

browser.visit('http://example.com') 

किरच और सेलेनियम एपीआई

from splinter import Browser 
from selenium import webdriver 

options = webdriver.ChromeOptions() 
options.add_experimental_option('prefs', {'intl.accept_languages': 'de_DE'}) 

browser = Browser('chrome', options=options) 

browser.visit('http://example.com') 
संबंधित मुद्दे