2015-07-22 7 views
5

में छवियों को बंद नहीं कर सकता है मैं सेलेनियम का उपयोग करते समय फ़ायरफ़ॉक्स में छवियों को अक्षम करना चाहता हूं। यह फ़ायरफ़ॉक्स, इन प्राथमिकताएं जो Disable images in Selenium Pythonसेलेनियम/फ़ायरफ़ॉक्स

पर दिए गए निर्देशों पर दर्ज है का एक सरल अद्यतन किया जाना चाहिए लेकिन जब मैं चलाने के लिए, छवियों प्रदर्शन, और जब मैं के बारे में दर्ज करें: config, permissions.default.image के लिए मूल्य अभी भी 1 के बजाय है 2 जिसे मैंने इसे सेट करने का प्रयास किया है।

मेरे कोड (पायथन में लिखा है):

from selenium import webdriver 
firefox_profile = webdriver.FirefoxProfile() 
firefox_profile.set_preference("permissions.default.image", 2) 
driver = webdriver.Firefox(firefox_profile) 
driver.get(web_address) 

संदर्भ के लिए, इस कोड को वरीयता जैसे करने के लिए एक और परिवर्तन के साथ एकदम सही काम करता है firefox_profile.set_preference("permissions.default.stylesheet",2) लाइन के साथ सीएसवी फाइलों को बंद करना। सीएसवी सेटिंग और छवि एक के बीच एकमात्र अंतर मैं बता सकता हूं कि यह लाइन permissions.default.image पहले से मौजूद है: कॉन्फ़िगरेशन (यानी मुझे इसे सेट किए बिना), हालांकि लाइन permissions.default.stylesheet नहीं है। ... ऐसा लगता है कि मैं अपनी इच्छित मान के साथ नई लाइनें जोड़ सकता हूं, लेकिन मौजूदा एक को नहीं बदल सकता (या यह मेरे मूल्य दर्ज करने के बाद सेलेनियम द्वारा अतिरंजित है)।

+0

आप भी किया घ परिवर्तनीय फ्लैश? firefox_profile.set_preference ('dom.ipc.plugins.enabled.libflashplayer.so', 'false') –

+0

कौन से सेलेनियम और फ़ायरफ़ॉक्स संस्करण आप उपयोग कर रहे हैं? धन्यवाद। – alecxe

+0

@alecxe फ़ायरफ़ॉक्स 39, और सैलेनियम 2.46.0। साथ ही, ऐसा लगता है कि मैं डिफ़ॉल्ट मानों को नहीं बदल सकता - मैं मूल्य 2 के साथ "permissions.default.image_new" मान बना सकता हूं, लेकिन 1 से 2 – kyrenia

उत्तर

4

मैं क्या समझ से, इस समस्या को निम्नलिखित फ़ायरफ़ॉक्स मुद्दों से संबंधित है:

इसका मतलब है कि permissions.default.image जमे हुए है, बदला नहीं जा सकता और कुछ नहीं करता है।


विकल्प:

+0

धन्यवाद Alecxe!एक्सटेंशन का उपयोग करने पर आपकी सलाह का पालन किया हालांकि पाया गया कि क्विकजावा ने सबसे अच्छा काम किया, क्योंकि छवि ब्लॉक ने फ़ायरफ़ॉक्स के नवीनतम संस्करण का समर्थन नहीं किया था। मैंने अपना कोड साझा किया है जो http://stackoverflow.com/questions/25214473/disable-images-in-selenium-python – kyrenia

0

को मैं इस समस्या थी। समाधान 3 चरणों में हल किया गया है। 1- फ़ायरफ़ॉक्स के लिए नई प्रोफ़ाइल बनाना। विंडोज़ में पूरी तरह फ़ायरफ़ॉक्स बंद करें। प्रेस (विंडो + आर), firefox.exe -p लिखें, फिर एंटर दबाएं और एक नई प्रोफ़ाइल बनाएं। बनाया प्रोफ़ाइल तो खुला के बारे में के साथ 2-खुली हुई Firefox: नेविगेशन पट्टी में config और permissions.default.image पाते हैं और यह संख्या 2. है बनाने bellow

ProfilesIni profile = new ProfilesIni(); 
FirefoxProfile myprofile = profile.getProfile("your_profile_name"); 
WebDriver driver = new FirefoxDriver(myprofile); 
0

एकमात्र समाधान मैंने पाया है कि यहाँ वर्णित की तरह अपने कोड 3-बदल :

http://seleniumwebdrivertrainings.com/on-firefox-in-selenium-webdriver-tests-with-python-do-not-want-images-to-load-and-css-to-render/

उदाहरण के लिए:

from selenium import webdriver 
firefox_profile = webdriver.FirefoxProfile() 

firefox_profile.add_extension(folder_xpi_file_saved_in + 'quickjava-2.1.0-fx.xpi') 
firefox_profile.set_preference('thatoneguydotnet.QuickJava.curVersion', '2.1.0') ## Prevents loading the 'thank you for installing screen' 
firefox_profile.set_preference('thatoneguydotnet.QuickJava.startupStatus.Images', 2) ## Turns images off 
    firefox_profile.set_preference('thatoneguydotnet.QuickJava.startupStatus.AnimatedImage', 2) ## Turns animated images off 
driver = webdriver.Firefox(firefox_profile) 
driver.get(web_address_desired) 
+1

नोट में समस्या हल करता है नोट - वह लिंक/उत्तर सिर्फ मेरे उत्तर मूल को http: // से कॉपी करता है stackoverflow.com/a/31576684/2801069 – kyrenia