অজগর দিয়ে সেলেনিয়ামে কীভাবে ফায়ার ফক্স হেডলেস প্রোগ্রাম করবেন?


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+ হওয়া উচিত। পোস্ট করা সমাধানগুলির কোনওটি কেন খনিতে কাজ করে না তা নির্ধারণ করার জন্য আমাকে কিছুটা সময় নিয়েছিল। বিকাশকারী.মোজিলা.আর.ইন-
বোরা লি

উত্তর:


222

ফায়ারফক্স ব্রাউজারটি নিঃশব্দে প্রার্থনা করতে আপনি শ্রেণিবদ্ধের 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

Outro

সেলেনিয়ামের মাধ্যমে হেডলেস মোডে ক্রোম ব্রাউজার শুরু করার জন্য কীভাবে ক্রোমড্রাইভার কনফিগার করবেন?


4
আপগ্রেডেড সেলেনিয়াম (3.14.1) এবং ফ্যান্টমজেএস এখন হ্রাস পেয়েছে, সুতরাং আমার পরীক্ষার কোনওটিই কাজ করে না। তাড়াহুড়ো করে ফায়ারফক্সে হেডহলেস যেতে হয়েছিল এই দুর্দান্ত সংক্ষিপ্তসার জন্য ধন্যবাদ
মর্টেনবি

5
MOZ_HEADLESS = 1 পাইথন ম্যানেজ.পি টেস্ট চালিয়েছে! এক্সভিএফবি-রানের আর দরকার নেই (:
নিকি কাউফেল্ড

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
গৃহীত উত্তরটি এখনও Firefoxgeckodriver
15-10


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')
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.