अजगर के साथ सेलेनियम में प्रोग्रामरहित फ़ायरफ़ॉक्स कैसे बनायें?


124

मैं अजगर, सेलेनियम और फ़ायरफ़ॉक्स के साथ इस कोड को चला रहा हूं, लेकिन अभी भी फ़ायरफ़ॉक्स का 'हेड' संस्करण प्राप्त करता हूं:

binary = FirefoxBinary('C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe', log_file=sys.stdout)
binary.add_command_line_options('-headless')
self.driver = webdriver.Firefox(firefox_binary=binary)

मैंने बाइनरी के कुछ रूपों की भी कोशिश की:

binary = FirefoxBinary('C:\\Program Files\\Nightly\\firefox.exe', log_file=sys.stdout)
        binary.add_command_line_options("--headless")

2
मैं बस यह जोड़ना चाहता था कि इस काम के लिए आपका फ़ायरफ़ॉक्स संस्करण 56+ होना चाहिए। मुझे यह जानने में थोड़ा समय लगा कि पोस्ट किए गए किसी भी समाधान पर मेरा काम क्यों नहीं हुआ। developer.mozilla.org/en-US/Firefox/Headless_mode
बोरा ली

जवाबों:


223

फ़ायरफ़ॉक्स ब्राउज़र को बिना सिर के लगाने के लिए, आप निम्नानुसार वर्ग के headlessमाध्यम से संपत्ति सेट कर सकते हैं Options():

from selenium import webdriver
from selenium.webdriver.firefox.options import Options

options = Options()
options.headless = True
driver = webdriver.Firefox(options=options, executable_path=r'C:\Utility\BrowserDrivers\geckodriver.exe')
driver.get("http://google.com/")
print ("Headless Firefox Initialized")
driver.quit()

हेडलेस मोड को पूरा करने का एक और तरीका है। यदि आपको फ़ायरफ़ॉक्स में हेडलेस मोड को अक्षम या सक्षम करने की आवश्यकता है, तो कोड को बदले बिना, आप फ़ायरफ़ॉक्स को हेडलेस चलाने के MOZ_HEADLESSलिए जो चाहें , उसे पर्यावरण चर सेट कर सकते हैं या इसे बिल्कुल भी सेट नहीं कर सकते।

यह बहुत उपयोगी है जब आप उदाहरण के लिए निरंतर एकीकरण का उपयोग कर रहे हैं और आप सर्वर में कार्यात्मक परीक्षण चलाना चाहते हैं लेकिन फिर भी अपने पीसी में सामान्य मोड में परीक्षण चलाने में सक्षम हैं।

$ MOZ_HEADLESS=1 python manage.py test # testing example in Django with headless Firefox

या

$ export MOZ_HEADLESS=1   # this way you only have to set it once
$ python manage.py test functional/tests/directory
$ unset MOZ_HEADLESS      # if you want to disable headless mode

किया

सेलेनियम के माध्यम से Chrome ब्राउज़र को हेडलेस मोड में आरंभ करने के लिए ChromeDriver को कैसे कॉन्फ़िगर करें?


4
अपग्रेडेड सेलेनियम (३.१४.१) और फैंटमजेएस अब अपदस्थ है, इसलिए मेरे किसी भी परीक्षण ने काम नहीं किया। जल्दी में फ़ायरफ़ॉक्स - हेडलेस पर स्विच करना पड़ा। इस उत्कृष्ट सारांश के लिए धन्यवाद
मोर्टेनबी

5
MOZ_HEADLESS = 1 अजगर प्रबंधन थिंकपैड परीक्षण किया था! अब xvfb- रन की कोई आवश्यकता नहीं है: (:
निकी कॉफ़ल्ड

23

पहला जवाब अब काम नहीं करता है।

यह मेरे लिए काम किया:

from selenium.webdriver.firefox.options import Options as FirefoxOptions
from selenium import webdriver

options = FirefoxOptions()
options.add_argument("--headless")
driver = webdriver.Firefox(options=options)
driver.get("http://google.com")

पायथन 3.8.2 / सेलेनियम .__ संस्करण__ == '3.141.0' बढ़िया काम करता है!
हिरण्वुंडे

1
जोड़ने के from selenium import webdriverलिए जोड़ेंwebdriver.Firefox()
स्नो

2
स्वीकार किए जाते हैं जवाब अभी भी के नवीनतम संस्करण के साथ काम करता Firefoxहै औरgeckodriver
CONvid19


2

बस उन लोगों के लिए एक नोट जो बाद में इसे पा सकते हैं (और इसे प्राप्त करने का जावा तरीका चाहते हैं); FirefoxOptionsयह बिना हेड मोड को सक्षम करने में सक्षम है:

FirefoxOptions firefoxOptions = new FirefoxOptions();
firefoxOptions.setHeadless(true);

6
यह सवाल पायथन के बारे में है, जावा के बारे में नहीं।
मैपियो

0
Used below code to set driver type based on need of Headless / Head for both Firefox and chrome:

// Can pass browser type 

if brower.lower() == 'chrome':
    driver = webdriver.Chrome('..\drivers\chromedriver')
elif brower.lower() == 'headless chrome':
    ch_Options = Options()
    ch_Options.add_argument('--headless')
    ch_Options.add_argument("--disable-gpu")
    driver = webdriver.Chrome('..\drivers\chromedriver',options=ch_Options)
elif brower.lower() == 'firefox':
    driver = webdriver.Firefox(executable_path=r'..\drivers\geckodriver.exe')
elif brower.lower() == 'headless firefox':
    ff_option = FFOption()
    ff_option.add_argument('--headless')
    ff_option.add_argument("--disable-gpu")
    driver = webdriver.Firefox(executable_path=r'..\drivers\geckodriver.exe', options=ff_option)
elif brower.lower() == 'ie':
    driver = webdriver.Ie('..\drivers\IEDriverServer')
else:
    raise Exception('Invalid Browser Type')
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.