পাইথন ব্যবহার করে সেলেনিয়াম - গেকোড্রাইভার এক্সিকিউটেবল PATH থাকা দরকার


435

আমি প্রোগ্রামিংয়ে নতুন এবং Pythonপ্রায় 2 মাস আগে দিয়ে শুরু করেছি এবং পাইথন পাঠ্যের সাথে সুইগার্টের অটোমেট দ্য বোরিং স্টাফটি দিয়ে যাচ্ছি । আমি আইডিএল ব্যবহার করছি এবং ইতিমধ্যে সেলেনিয়াম মডিউল এবং ফায়ারফক্স ব্রাউজার ইনস্টল করেছি। যখনই আমি ওয়েবড্রাইভার ফাংশনটি চালানোর চেষ্টা করেছি, আমি এটি পেয়েছি:

from selenium import webdriver
browser = webdriver.Firefox()

ব্যতিক্রম: -

Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0DA1080>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firefox.service.Service object at 0x00000249C0E08128>>
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 163, in __del__
    self.stop()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 135, in stop
    if self.process is None:
AttributeError: 'Service' object has no attribute 'process'
Traceback (most recent call last):
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 64, in start
    stdout=self.log_file, stderr=self.log_file)
  File "C:\Python\Python35\lib\subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "C:\Python\Python35\lib\subprocess.py", line 1224, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    browser = webdriver.Firefox()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 135, in __init__
    self.service.start()
  File "C:\Python\Python35\lib\site-packages\selenium\webdriver\common\service.py", line 71, in start
    os.path.basename(self.path), self.start_error_message)
selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH. 

আমি মনে করি যে আমার জন্য পথ নির্ধারণ করা দরকার geckodriverতবে কীভাবে নিশ্চিত তা নয়, সুতরাং কেউ আমাকে কীভাবে এটি করতে পারে তা বলতে পারেন?



পাইথন / পাইথন 35 ডিরেক্টরিতে আমি জেকোড্রাইভার.এক্সিকে রাখছি যাতে এটি একই পথ পায় এবং আমি আরও বেশি সমস্যা পাচ্ছি।
tadm123

80
ম্যাকে:brew install geckodriver
নস্টালজি.ইউ

1
আমি দেখতে পেয়েছি যে ক্রোম ব্রাউজারের মাধ্যমে এটি চালানো ফায়ারফক্সের চেয়ে কিছুটা দ্রুত, আপনাকে কেবল এটির জন্য ডাউনলোড করতে হবে chromedriver
tadm123

দ্রষ্টব্য: টেস্টকাফে রয়েছে যা সম্প্রতি খোলা উত্সাহ পেয়েছে। এটির জন্য কোনও ব্রাউজার প্লাগইন প্রয়োজন হয় না, সেগুলি অন্তর্নির্মিত। আমি সেলেনিয়াম ব্যবহার করতে চেয়েছিলাম তবে এটি একটি আকর্ষণীয় বিকল্পের মতো দেখাচ্ছে।
এহভিন্স

উত্তর:


354

selenium.common.exferences.WebDriverException: বার্তা: 'গেকোড্রাইভার' এক্সিকিউটেবলটি PATH এ থাকা দরকার।

সবার আগে আপনাকে সেলেনিয়াম ব্যবহার করে সর্বশেষ ফায়ারফক্স চালানোর জন্য এখান থেকে সর্বশেষ এক্সিকিউটেবল গেকোড্রাইভার ডাউনলোড করতে হবে

আসলে সেলেনিয়াম ক্লায়েন্ট বাইন্ডিংগুলি geckodriverসিস্টেম থেকে নির্বাহযোগ্যকে সনাক্ত করার চেষ্টা করে PATH। সিস্টেমের পথে আপনাকে এক্সিকিউটেবল যুক্ত ডিরেক্টরি যুক্ত করতে হবে।

  • ইউনিক্স সিস্টেমে আপনি আপনার ব্যাশের সাথে সামঞ্জস্যপূর্ণ শেল ব্যবহার করে যদি আপনার সিস্টেমের অনুসন্ধানের পথে এটি যুক্ত করতে নিম্নলিখিতগুলি করতে পারেন:

    export PATH=$PATH:/path/to/directory/of/executable/downloaded/in/previous/step
  • এক্সিকিউটেবল গেকোড্রাইভারটিতে ম্যানুয়ালি পুরো ডিরেক্টরি পাথ যুক্ত করতে আপনাকে উইন্ডোজটিতে পাথ সিস্টেম পরিবর্তনশীল আপডেট করতে হবে বা কমান্ড লাইনে বা কার্যকর করার জন্য সিস্টেম PATH এ এক্সিকিউটেবল গেকোড্রাইভার যুক্ত করার পরে আপনার সিস্টেম পুনরায় আরম্ভ করতে ভুলবেন না) । নীতিটি ইউনিক্সের মতোই।

এখন আপনি নিজের কোডটি নীচের মতো করে চালাতে পারেন: -

from selenium import webdriver

browser = webdriver.Firefox()

selenium.common.exception.WebDriverException: বার্তা: প্রত্যাশিত ব্রাউজারের বাইনারি অবস্থান, কিন্তু ডিফল্ট লোকেশনে বাইনারি খুঁজে পাওয়া যায় না, 'মোজ: ফায়ারফক্সঅপশনস.বাইনারি' সক্ষমতা সরবরাহ করা হয়নি, এবং কমান্ড লাইনে কোনও বাইনারি পতাকা সেট করা নেই

ব্যতিক্রম পরিষ্কারভাবে জানায় যে সেলেনিয়াম ফায়ারফক্স খুঁজতে এবং ডিফল্ট লোকেশন থেকে লঞ্চ করার চেষ্টা করার সময় আপনি অন্য কোনও স্থানে ফায়ার ফক্স ইনস্টল করেছেন তবে এটি সন্ধান করতে পারেনি। নীচে হিসাবে ফায়ারফক্স চালু করতে আপনাকে সুস্পষ্টভাবে ফায়ারফক্স ইনস্টল করা বাইনারি অবস্থান সরবরাহ করতে হবে: -

from selenium import webdriver
from selenium.webdriver.firefox.firefox_binary import FirefoxBinary

binary = FirefoxBinary('path/to/installed firefox binary')
browser = webdriver.Firefox(firefox_binary=binary)

8
ধন্যবাদ কিন্তু আমি আমার সেট geckodriver.exeউপর C:\Python\Python35\seleniumডিরেক্টরি ও আমি পথ সেট মত বর্ণিত কিন্তু এটা আমার নীচের ত্রুটিটি দান আছে:
tadm123

4
ধন্যবাদ @ সৌরভ গৌর, এখন এটি কাজ করছে। আমি ম্যানুয়ালি সিস্টেমের ভেরিয়েবলগুলিতে ফায়ারফক্সের পথ যুক্ত করেছি এবং এটি সব কাজ করছে। লঞ্চ করতে একটু সময় নেয় তবে আমি অনুমান করছি এটি সাধারণ। ধন্যবাদ!
tadm123

3
আমি ত্রুটি পেয়েছি "ওয়েবড্রাইভার এক্সসেপশন: বার্তা: ব্রাউজার শুরু করতে ব্যর্থ হয়েছে: অনুমতি অস্বীকার করা হয়েছে" প্রথমে যখন আমি ফায়ারফক্স বাইনারি পথ নির্দিষ্ট করা শুরু করেছিলাম তবে কম্পিউটারটি পুনরায় চালু করা (উইন্ডোজ 10) সমস্যার সমাধান করেছে। - ঠিক আমার ক্ষেত্রে অন্য কেউ একই সমস্যায় পড়ছে।
NoSuchElephantException

3
বাইনারি কি? এর অর্থ কি কার্যকর?
ব্যবহারকারী

12
এই উত্তর ছাড়াও, আমি PATHইউনিক্স পরিবেশে সেটিংস স্থাপন করতে প্রসারিত করতে চাই । আপনার সিস্টেমের প্রশস্ত সিস্টেমের প্রয়োজন না হওয়ার কারণে আপনি এটিকে কোডে সেট করতে পারেন: os.environ["PATH"] += os.pathsep + 'path/to/dir/containing/geckodriver/' বা আপনার প্যাকটিতে ইতিমধ্যে ডিরেক্টরিতে থাকা গেকোড্রাইভার বাইনারি রাখুন:mv geckodriver /usr/local/bin
ডিসালাজ

161

এটি আমার জন্য এটি সমাধান করেছে।

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'your\path\geckodriver.exe')
driver.get('http://inventwithpython.com')

আপনি যদি ভুল অনুমতি পেয়ে থাকেন তবে [আর '] পথ থেকে কেবল "এক্সটেকিউটেবল_পথ =' পাথ \ থেকে \ আপনার 'নির্দেশিকা" "সরানোর চেষ্টা করুন
দারিয়াস

@ আদিত্যরাওয়াত আপনি কোন অপারেটিং সিস্টেম চালু করছেন?
নেসা

তবে এখন আমি ভুল অনুমতিগুলির পরিবর্তে ওএসআরর পাচ্ছি। আমি কোনওভাবে জেকোড্রাইভারকে / usr / স্থানীয় / বিনে অনুলিপি করতে সক্ষম হয়েছি। তবে এখন এই নতুন ত্রুটিটি আমাকে হত্যা করছে
আদিত্য কাঁচাট

@ আদিত্যরাওয়াত আপনি এখানে থেকে স্বতন্ত্রভাবে জেকোড্রাইভার ডাউনলোড করতে পারেন: github.com/mozilla/geckodriver/releases এটিকে তার দিয়ে বের করে chmod + x দিয়ে এক্সিকিউটেবল করে তোলে, এটি / usr / স্থানীয় / বিনে থাকতে হবে না, আপনার কাছে কেবল এটিতে আপনার পথ নির্দিষ্ট করতে
নেসা

শুধু স্পষ্ট করে বলার জন্য আমি আর্ম 7 এফএফ.টি.আর ফাইলটি ডাউনলোড করেছি এবং এটিও বের করেছি এবং কমান্ডটি ব্যবহার করে এটিতে যুক্ত করেছি export PATH=$PATH:geckodriver(এটি ডেস্কটপে সরিয়ে নেওয়া হয়েছে)। তবে এটিও কোনও কাজে লাগেনি। আমি এখনও OSError [errno 8] পেতে
রাওয়াত আদিত্য

121

এই পদক্ষেপগুলি আমার জন্য উবুন্টু ফায়ারফক্স 50 এ সলভড।

  1. গেকোড্রাইভার ডাউনলোড করুন

  2. / Usr / স্থানীয় / বিনে জেকোড্রাইভার অনুলিপি করুন

আপনাকে যুক্ত করার দরকার নেই

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
firefox_capabilities['binary'] = '/usr/bin/firefox'
browser = webdriver.Firefox(capabilities=firefox_capabilities)

আপনার কোডে আপনি সামর্থ্য পরিবর্তনশীলটি যুক্ত করতে পারবেন না
আন্ড্রেয়া পেরডিচিয়া

আপনি কীভাবে ফায়ারফক্সের জন্য ডাউনলোড ডিরেক্টরি সেট করবেন তা জানবেন? আমি নিম্নলিখিত প্রশ্নটি ফায়ারফক্স পছন্দগুলি যুক্ত করেছি । কোন সাহায্যের অনেক প্রশংসা হবে।
d84_n1nj4

ডেবিয়ান বা উবুন্টুতে আপনাকে ফায়ারফক্স ইনস্টল করার জন্য অ্যাপ্ট কমান্ড ব্যবহার করতে হবে। উইন্ডোজের জন্য আমি কোনও ধারণা দুঃখিত না
আন্ড্রেয়া পেরিডিচিয়া

ধন্যবাদ। : এই উত্তর প্রয়োগের পর, আমি আরও এই সমাধান একটি ফলো আপ ইস্যু পরিচালনা করার জন্য গ্রহণ stackoverflow.com/questions/43713445/...
HackNone

ধন্যবাদ, পাইচার্ম জেকোড্রাইভারটি খুঁজে পাচ্ছিল না যদিও এটি বাড়িতে ছিল এবং প্রকল্পের ফোল্ডারে নিজেই ছিল, তবে / ইউএসআর / স্থানীয় / বিনে স্থানান্তরিত করার পরে এটি পুরোপুরি কাজ করেছিল
রোনাল্ড দাস

32

@ সৌরভের উত্তরটি সমস্যার সমাধান করে, তবে পাইথনের সাথে বোরিং স্টাফ স্বয়ংক্রিয় করে কেন তা ব্যাখ্যা করে না এই পদক্ষেপগুলি অন্তর্ভুক্ত করে না করে না।

বইটি সেলেনিয়াম ২.x এর উপর ভিত্তি করে তৈরি হয়েছে এবং সেই সিরিজের জন্য ফায়ারফক্স ড্রাইভারকে গেকো ড্রাইভারের প্রয়োজন নেই। সেলেনিয়াম যখন বিকাশ করা হয়েছিল তখন ব্রাউজারটি চালনার জন্য গেকো ইন্টারফেসটি পাওয়া যায় নি।

সর্বশেষ সংস্করণ সেলেনিয়াম 2.x সিরিজে 2.53.6 হয় (দেখুন উদাঃ এই উত্তর , সংস্করণ একজন সহজ দেখার জন্য)।

2.53.6 সংস্করণ পৃষ্ঠা সব সময়ে Gecko উল্লেখ নেই। তবে সংস্করণ 3.0.2 থেকে ডকুমেন্টেশনটি স্পষ্টভাবে জানিয়েছে আপনাকে গেকো ড্রাইভার ইনস্টল করতে হবে।

যদি কোনও আপগ্রেডের পরে (বা কোনও নতুন সিস্টেমে ইনস্টল করা) হয়ে থাকে তবে আপনার সফ্টওয়্যার যা আগে ভাল কাজ করেছে (বা আপনার পুরানো সিস্টেমে) আর কাজ করে না এবং আপনি তাড়াহুড়ো করে থাকেন, তা করে আপনার ভার্চুয়ালনেভের সেলেনিয়াম সংস্করণটি পিন করুন

pip install selenium==2.53.6

তবে অবশ্যই বিকাশের দীর্ঘমেয়াদী সমাধান হ'ল সেলেনিয়ামের সর্বশেষতম সংস্করণ সহ একটি নতুন ভার্চুয়ালেনভ সেটআপ করা, জেকো ড্রাইভার ইনস্টল করা এবং যদি এখনও সবকিছু প্রত্যাশা অনুযায়ী কাজ করে তবে পরীক্ষা করা। তবে প্রধান সংস্করণ দ্বন্দ্ব এমন অন্যান্য এপিআই পরিবর্তনগুলি প্রবর্তন করতে পারে যা আপনার বইয়ের আওতাভুক্ত নয়, সুতরাং আপনি সেলেনিয়াম 2 এবং সেলেনিয়াম 3 এপিআইয়ের মধ্যে কোনও তাত্পর্য ঠিক করতে না পারলে আপনি যথেষ্ট আত্মবিশ্বাসী না হওয়া পর্যন্ত আপনি পুরানো সেলেনিয়ামের সাথে লেগে থাকতে চাইবেন।


2
আমার ইচ্ছা এই শীর্ষ উত্তর ছিল
sudo-nim

1
এটি আমাকে সাহায্য করেছে,
আন্তঃকে

24

ইতিমধ্যে ইনস্টল করা হোমব্রিউ সহ ম্যাকোজে আপনি টার্মিনাল কমান্ডটি চালাতে পারবেন

$ brew install geckodriver

হোমব্রিউ এরই মধ্যে বাড়িয়ে দিয়েছে কারণ PATHকোনও প্রারম্ভিক স্ক্রিপ্টগুলি সংশোধন করার দরকার নেই।


@রোস্কাকোরি আমি এটি করেছি এবং এটি সফলভাবে ইনস্টল হয়ে গেছে তবে এখনও আমি একই ত্রুটি
পাচ্ছি

এটি আমার জন্য এটি করেছে, ধন্যবাদ। ফায়ারফক্স 72.0.2 এবং সেলেনিয়াম 3.141.0
স্যাম

17

সেলেনিয়াম পাইথনের জন্য গেকোড্রাইভার সেট আপ করতে:

ফায়ারফক্সড্রাইভারের সাথে নীচের কোড হিসাবে এটি জেকোড্রাইভার পাথ সেট করতে হবে:

self.driver = webdriver.Firefox(executable_path = 'D:\Selenium_RiponAlWasim\geckodriver-v0.18.0-win64\geckodriver.exe')

আপনার উপযুক্ত ওএসের জন্য জেকোড্রাইভার ডাউনলোড করুন ( https://github.com/mozilla/geckodriver/releases থেকে ) -> এটি আপনার পছন্দের ফোল্ডারে এক্সট্র্যাক্ট করুন -> উপরে বর্ণিত হিসাবে সঠিকভাবে পথ নির্ধারণ করুন

আমি উইন্ডোজ 10 এ পাইথন 3.6.2 এবং সেলেনিয়াম ওয়েবড্রাইভার 3.4.3 ব্যবহার করছি।

জেকোড্রাইভার সেটআপ করার আরেকটি উপায়:

i) পাইথন / স্ক্রিপ্টস / এর অধীনে জেকোড্রাইভার.এক্সিকে সহজভাবে পেস্ট করুন (আমার ক্ষেত্রে ফোল্ডারটি ছিল: সি: \ পাইথন 36 \ স্ক্রিপ্ট)
ii) এখন সহজ কোডটি নীচের মত লিখুন:

self.driver = webdriver.Firefox()

17

আপনি যদি অ্যানাকোন্ডা ব্যবহার করছেন তবে আপনাকে যা করতে হবে তা হ'ল আপনার ভার্চুয়াল পরিবেশটি সক্রিয় করা এবং তারপরে নিম্নলিখিত কমান্ডটি ব্যবহার করে জেকোড্রাইভার ইনস্টল করুন :

    conda install -c conda-forge geckodriver

হ্যাঁ, এটি গেকোড্রাইভার ইনস্টল করে তবে পাইচার্ম ত্রুটি একই থাকে।
ওয়েবকোমার

হাই, আমি অনেকগুলি চেষ্টা করেছিলাম এবং এটিই আমার পক্ষে কাজ করেছে :-) আপনাকে ধন্যবাদ
tezzaaa

12

উবুন্টু 18.04+ এবং জেকোড্রাইভারের সর্বশেষতম প্রকাশ

এটি অন্যান্য * নিক্স প্রকারের জন্যও কাজ করা উচিত।

export GV=v0.26.0
wget "https://github.com/mozilla/geckodriver/releases/download/$GV/geckodriver-$GV-linux64.tar.gz"
tar xvzf geckodriver-$GV-linux64.tar.gz 
chmod +x geckodriver
sudo cp geckodriver /usr/local/bin/

ম্যাক আপডেটের জন্য এখানে:

geckodriver-$GV-macos.tar.gz

12

আমি দেখতে পাচ্ছি যে বাইনারিটি ডাউনলোড করে এবং ম্যানুয়ালি পথটি কনফিগার করে জেকোড্রাইভার সেটআপ করার পুরানো পদ্ধতি সম্পর্কে আলোচনাগুলি এখনও আলোচনা করে।

ওয়েবড্রাইভার-ম্যানেজার ব্যবহার করে এটি স্বয়ংক্রিয়ভাবে করা যেতে পারে

pip install webdriver-manager

এখন প্রশ্নের উপরের কোডটি নীচের পরিবর্তনের সাথে কেবল কাজ করবে,

from selenium import webdriver
from webdriver_manager.firefox import GeckoDriverManager

driver = webdriver.Firefox(executable_path=GeckoDriverManager().install())

2
এটি আমার পক্ষে কাজ করেছে। ধন্যবাদ!
igorkf

সাফারি বা ইন্টারনেট এক্সপ্লোরারের কি একই রকম ড্রাইভার ম্যানেজার রয়েছে?
দুষ্টুমি_মোনকি

11

উইন্ডোজের সহজতম উপায়! এখান থেকে
সর্বশেষতম সংস্করণটি ডাউনলোড করুন । পাইথন ডিরেক্টরিতে (বা অন্য কোনও ডিরেক্টরি যা ইতিমধ্যে রয়েছে ) জেকোড্রাইভার.এক্সি ফাইল যুক্ত করুন । এটি সমস্যার সমাধান করা উচিত (উইন্ডোজ 10 এ পরীক্ষিত)geckodriverPATH


উইন্ডোজ সবচেয়ে খারাপ। দ্রুত সমাধানের জন্য ধন্যবাদ।
এজে_

এটি এখন পর্যন্ত সবচেয়ে সহজ সমাধান !! এমনকি আপনার কম্পিউটার পুনরায় চালু করার দরকার নেই!
ওলেনেসকি

8

ম্যাকের জন্য পদক্ষেপগুলি:

এর সহজ সমাধান হ'ল GeckoDriver ডাউনলোড করা এবং এটি আপনার সিস্টেমে PATH এ যুক্ত করুন। আপনি দুটি পদ্ধতির যে কোনও একটি ব্যবহার করতে পারেন:

সংক্ষিপ্ত পদ্ধতি:

1) গেকোড্রাইভার ডাউনলোড এবং আনজিপ করুন

2) ড্রাইভারটি শুরু করার সময় পথটির উল্লেখ করুন:

driver = webdriver.Firefox(executable_path='/your/path/to/geckodriver')

দীর্ঘ পদ্ধতি:

1) গেকোড্রাইভার ডাউনলোড এবং আনজিপ করুন

2) খোলা .bash_profile। আপনি যদি এখনো তা না তৈরি করে থাকেন, আপনি এখন কমান্ড ব্যবহার করে তা করতে পারেন: touch ~/.bash_profile। তারপরে এটি খুলুন:open ~/.bash_profile

3) বিবেচনা করে গেকোড্রাইভার ফাইলটি আপনার ডাউনলোড ফোল্ডারে উপস্থিত রয়েছে, আপনি .bash_profileফাইলটিতে নিম্নলিখিত লাইনটি যুক্ত করতে পারেন :

PATH="/Users/<your-name>/Downloads/geckodriver:$PATH"
export PATH

এটির মাধ্যমে আপনি গেকোড্রাইভারের জন্য আপনার সিস্টেম PATH এর পথ সংযোজন করছেন। এটি আপনার সেলেনিয়াম স্ক্রিপ্টগুলি সম্পাদন করার সময় গেকোড্রাইভার যেখানে রয়েছে সেটিকে সিস্টেমটি বলে।

4) সংরক্ষণ করুন .bash_profileএবং কার্যকর করতে বাধ্য। এটি পুনরায় বুট না করে অবিলম্বে মানগুলি লোড করে। এটি করতে আপনি নিম্নলিখিত কমান্ডটি চালাতে পারেন:

source ~/.bash_profile

5) এটি। তুমি পেরেছ!. আপনি এখন পাইথন স্ক্রিপ্ট চালাতে পারেন।


1
আমি geckodriverহোমব্রিউয়ের সাথে ডাউনলোড করতে সক্ষম হয়েছি : brew install geckodriverএবং তারপরে ফায়ারফক্সের সূচনা driver = webdriver.Firefox(executable_path="/usr/local/bin/geckodriver")
করলাম

7

এই থ্রেডের ভবিষ্যতের পাঠকদের জন্য কিছু অতিরিক্ত ইনপুট / স্পষ্টতা:

উইন্ডোজ 7, ​​পাইথন 3.6, সেলেনিয়াম 3.11 এর রেজোলিউশন হিসাবে নিম্নলিখিত বিষয়গুলি যথেষ্ট:

ইউনিক্সের জন্য এই থ্রেডে @ dsalaj এর নোটটি উইন্ডোতেও প্রযোজ্য; PATH এনভির সাথে ঝাঁকুনি দেওয়া। উইন্ডোজ পর্যায়ে পরিবর্তনশীল এবং উইন্ডোজ সিস্টেম পুনরায় চালু এড়ানো যায় can

(1) জেকোড্রাইভার ডাউনলোড করুন (আগে এই থ্রেডে বর্ণিত) এবং (আনজিপড) গেকড্রাইভার.এক্সিকে আপনার পছন্দ অনুসারে এক্স: \ ফোল্ডার place এ রাখুন

(2) পাইথন কোড নমুনা:

import os;
os.environ["PATH"] += os.pathsep + r'X:\Folder\of\your\choice';

from selenium import webdriver;
browser = webdriver.Firefox();
browser.get('http://localhost:8000')
assert 'Django' in browser.title

দ্রষ্টব্য: (১) উপরের কোডটি নির্দিষ্ট url এর জন্য ফায়ারফক্স ব্রাউজার খুলতে প্রায় 10 সেকেন্ড সময় নিতে পারে।
(২) পাইথন কনসোলটি নিম্নলিখিত ত্রুটিটি প্রদর্শন করবে যদি ইতিমধ্যে নির্দিষ্ট url এ কোনও সার্ভার চালু না থাকে বা 'জ্যাঙ্গো' স্ট্রিংযুক্ত শিরোনাম সহ একটি পৃষ্ঠা সরবরাহ করে থাকে: selenium.common.exception.WebDriverException: বার্তা: ত্রুটি পৃষ্ঠাতে পৌঁছেছে: প্রায় : neterror E = connectionFailure & U = HTTP% 3A // স্থানীয় হোস্ট% 3A8000 / সি = হল UTF-8 & F = নিয়মিত & D = ফায়ারফক্স% 20can% E2% 80% 9


ধন্যবাদ, আমি অন্যান্য সমস্ত সমাধান চেষ্টা করেছিলাম তবে কেবল আপনার উইন্ডোজেই কাজ করেছেন!
পিএসও 17:58

4

আমি প্রকৃতপক্ষে আবিষ্কার করেছি আপনি এটি সিস্টেমের পথে রেখে সর্বশেষতম জেকোড্রাইভারটি ব্যবহার করতে পারেন। বর্তমানে আমি ব্যবহার করছি

https://github.com/mozilla/geckodriver/releases/download/v0.12.0/geckodriver-v0.12.0-win64.zip

ফায়ারফক্স 50.1.0

পাইথন ৩.৩.২

সেলেনিয়াম 3.0.2

উইন্ডোজ 10

আমি ভার্চুয়ালএএনভি চালিয়ে যাচ্ছি (যা আমি পাইচার্ম ব্যবহার করে পরিচালনা করি, আমি ধরে নিই এটি সবকিছু ইনস্টল করার জন্য পাইপ ব্যবহার করে)

নিম্নলিখিত কোডটিতে আমি এক্সিকিউটেবল_পথ প্যারামিটার ব্যবহার করে জেকোড্রাইভারের জন্য একটি নির্দিষ্ট পাথ ব্যবহার করতে পারি (আমি Lib \ সাইট-প্যাকেজগুলি \ সেলেনিয়াম \ ওয়েবড্রাইভার \ ফায়ারফক্স \ ওয়েবড্রাইভার.পি এ দেখে এটি আবিষ্কার করেছি)। দ্রষ্টব্য আমার একটি সন্দেহ আছে যে ওয়েবড্রাইভারকে কল করার সময় প্যারামিটার আর্গুমেন্টের ক্রমটি গুরুত্বপূর্ণ, এ কারণেই এক্সিকিউটেবল_পথটি আমার কোডে শেষ (ডানদিকে দ্বিতীয় লাইন বন্ধ)

আপনি খেয়াল করতে পারেন যে সেক_অরর_অজ্ঞাত_সুইয়ার সমস্যাটি ঘুরে দেখার জন্য আমি একটি কাস্টম ফায়ারফক্স প্রোফাইল ব্যবহার করেছি যা আপনি পরীক্ষা করে যাচ্ছেন এমন সাইটটি যদি অবিশ্বস্ত শংসাপত্র রয়েছে তবে আপনি এটি চালাবেন। দেখুন সেলেনিয়াম ব্যবহার করে ফায়ারফক্সের অবিশ্বস্ত সংযোগ সতর্কতা কীভাবে অক্ষম করবেন?

তদন্তের পরে দেখা গেছে যে মেরিওনেট ড্রাইভারটি অসম্পূর্ণ এবং এখনও প্রগতিতে রয়েছে এবং শংসাপত্রগুলি বরখাস্ত বা নির্ধারণের জন্য বিভিন্ন ক্ষমতা বা প্রোফাইল বিকল্প নির্ধারণের কোনও পরিমাণ কাজ করছে না। সুতরাং একটি কাস্টম প্রোফাইল ব্যবহার করা সহজ ছিল।

যাইহোক, আমি কীভাবে গেকোড্রাইভারটি পথে না গিয়ে কাজ করার জন্য কোডটি এখানে রেখেছি:

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True

#you probably don't need the next 3 lines they don't seem to work anyway
firefox_capabilities['handleAlerts'] = True
firefox_capabilities['acceptSslCerts'] = True
firefox_capabilities['acceptInsecureCerts'] = True

#In the next line I'm using a specific FireFox profile because
# I wanted to get around the sec_error_unknown_issuer problems with the new Firefox and Marionette driver
# I create a FireFox profile where I had already made an exception for the site I'm testing
# see https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles#w_starting-the-profile-manager

ffProfilePath = 'D:\Work\PyTestFramework\FirefoxSeleniumProfile'
profile = webdriver.FirefoxProfile(profile_directory=ffProfilePath)
geckoPath = 'D:\Work\PyTestFramework\geckodriver.exe'
browser = webdriver.Firefox(firefox_profile=profile, capabilities=firefox_capabilities, executable_path=geckoPath)
browser.get('http://stackoverflow.com')

আমি সিনট্যাক্স এরিয়ার পেয়েছি: (ইউনিকোড ত্রুটি) 'ইউনিকোডেস্কেপ' কোডেক বাইটগুলি ডিকোড করতে পারে না ... এবং আমাকে এপথ = আর'সি তে জেকো পথ পরিবর্তন করতে হবে: \ ব্যবহারকারীদের \ পদক্ষেপ_ bu নথিগুলি \ এমটিজি_বায়ার \ জেকোড্রাইভার্স \ গেকোড্রাইভার.এক্সে '। সম্ভবত কারণটি হ'ল আমি চাইনিজ উইন্ডোজ 10 ব্যবহার করছি?
এন্ডলে_জেংবো

3

আমি উইন্ডোজ 10 ব্যবহার করছি এবং এটি আমার জন্য কাজ করেছে:

  1. এখান থেকে জেকোড্রাইভার ডাউনলোড করুন । আপনি যে কম্পিউটারটি ব্যবহার করছেন তার সঠিক সংস্করণটি ডাউনলোড করুন
  2. আপনি সবেমাত্র ডাউনলোড করা ফাইলটিকে আনজিপ করুন এবং এতে থাকা ".exe" ফাইলটি কেটে / অনুলিপি করুন
  3. সি তে নেভিগেট করুন: {আপনার পাইথন মূল ফোল্ডার} খনি ছিল সি: \ পাইথন 27। এই ফোল্ডারে geckodriver.exe ফাইল আটকান।
  4. আপনার বিকাশের পরিবেশ পুনরায় চালু করুন।
  5. কোডটি আবার চালানোর চেষ্টা করুন, এটি এখনই কাজ করা উচিত।

আপনাকে আপনার বিকাশের পরিবেশ পুনরায় চালু করতে হবে উল্লেখ করার জন্য ধন্যবাদ Thanks
গভীর

3

একটি ধারকযুক্ত ফায়ারফক্স ইনস্টল করার বিষয়ে বিবেচনা করুন:

docker pull selenium/standalone-firefox
docker run --rm -d -p 5555:4444 --shm-size=2g selenium/standalone-firefox

ব্যবহার করে সংযুক্ত করুন webdriver.Remote:

driver = webdriver.Remote('http://localhost:5555/wd/hub', DesiredCapabilities.FIREFOX)
driver.set_window_size(1280, 1024)
driver.get('https://toolbox.googleapps.com/apps/browserinfo/')
driver.save_screenshot('info.png')

2

এটি সত্যিই বরং দুঃখের বিষয় যে সেলেনিয়াম / পাইথনের উপর প্রকাশিত বইগুলির কোনওটিই এবং গুগলের মাধ্যমে এই ইস্যুতে বেশিরভাগ মন্তব্যই ম্যাক এ সেট আপ করার জন্য পথনির্দেশ যুক্তির সুস্পষ্ট ব্যাখ্যা দেয় না (সবকিছুই উইন্ডোজ !!!!)। ইউটিউবগুলি "পরে" সমস্ত পিকআপ আপনাকে পাথ সেটআপ পেয়েছে (মনে মনে, সস্তা উপায়!)। সুতরাং, আপনার দুর্দান্ত ম্যাক ব্যবহারকারীদের জন্য আপনার বাশ পাথ ফাইলগুলি সম্পাদনা করতে নিম্নলিখিতটি ব্যবহার করুন:

> $ টাচ ~ / .বাশ_প্রোফাইল; open / .bash_profile খুলুন

তারপরে এই জাতীয় পথটি যুক্ত করুন .... * # জেকোড্রাইভার PATH = "/ usr / বিন / গেকোড্রাইভার: $ AT पथ}" রফতানুন

সেলেনিয়াম ফায়ারফক্সের জন্য PATH নির্ধারণ করা হচ্ছে

PATH = "~ / ব্যবহারকারী / আপনার নামপ্যাথ / ভেনভ পাইথনআইন্টারপ্রিটার / lib / পাইথন 2.7 / সাইট-প্যাকেজ / সেলেনিয়াম / ওয়েবড্রাইভার / ফায়ারফক্স /: $ AT पथ" export রফতানি পাঠ

ফায়ারফক্স ড্রাইভারের এক্সিকিউটেবলের জন্য PATH সেট করা হচ্ছে

পাঠ্য = "/ ব্যবহারকারী / আপনার নাম প্যাথ / ভেনভ পাইথনইন্টারপ্রিটার / লিব / পাইথন ২..7 / সাইট-প্যাকেজ / সেলেনিয়াম / ওয়েবড্রাইভার / সাধারণ / সেবা.পি: {AT पथ" AT রফতানি পাঠ্যপথ *

এটি আমার পক্ষে কাজ করেছে। আমার উদ্বেগটি হ'ল কখন সেলেনিয়াম উইন্ডোজ সম্প্রদায় আসল গেমটি খেলতে শুরু করবে এবং ম্যাক ব্যবহারকারীদের তাদের উদ্ধত ক্লাবের সদস্যতায় অন্তর্ভুক্ত করবে।


2

সেলেনিয়াম তাদের DESCRIPTION.rst এ এই প্রশ্নের উত্তর দেয়

Drivers
=======

Selenium requires a driver to interface with the chosen browser. Firefox,
for example, requires `geckodriver <https://github.com/mozilla/geckodriver/releases>`_, which needs to be installed before the below examples can be run. Make sure it's in your `PATH`, e. g., place it in `/usr/bin` or `/usr/local/bin`.

Failure to observe this step will give you an error `selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

মূলত জেকোড্রাইভারটি ডাউনলোড করুন, এটি আনপ্যাক করুন এবং এক্সিকিউটেবলকে আপনার / usr / বিন ফোল্ডারে সরিয়ে দিন


এই উক্তিতে লিনাক্স পুদিনা 18 এ কাজ করা দিকনির্দেশ রয়েছে।
এলিয়ট রবার্ট

2

উইন্ডোজ ব্যবহারকারীদের জন্য

মূল কোডটি এটির মতো ব্যবহার করুন:

from selenium import webdriver
browser = webdriver.Firefox()
driver.get("https://www.google.com")

তারপরে ড্রাইভারটি ডাউনলোড করুন: মোজিলা / গেকোড্রাইভার

এটিকে স্থির পথে রাখুন (স্থায়ীভাবে) .. উদাহরণ হিসাবে আমি এটিকে রেখেছি:

সি: \ Python35

তারপরে সিস্টেমের পরিবেশের ভেরিয়েবলগুলিতে যান, "সিস্টেম ভেরিয়েবল" এর গ্রিডে পাথ ভেরিয়েবলের সন্ধান করুন এবং যুক্ত করুন:

; সি: \ Python35 \ geckodriver

গেকোড্রাইভার, জেকোড্রাইভার.এক্সই নয়


গেকোড্রাইভার, জেকোড্রাইভার.এক্সই নয়।
সৌরভ চন্দ্র প্যাটেল

1

রাস্পবেরি পাইতে আমাকে এআরএম ড্রাইভার থেকে তৈরি করতে এবং গেকোড্রাইভার এবং লগ ইনের পথে সেট করতে হয়েছিল:

সুডো ন্যানো / অ্যাসার / লোকাল / লিবি / পিপথন ২..7/dist-packages/selenium/webdriver/firefox/webdriver.py

def __init__(self, firefox_profile=None, firefox_binary=None,
             timeout=30, capabilities=None, proxy=None,
             executable_path="/PATH/gecko/geckodriver",                     
firefox_options=None,
             log_path="/PATH/geckodriver.log"):

1

যদি আপনি ভার্চুয়াল পরিবেশ এবং win10 (সম্ভবত এটি অন্যান্য সিস্টেমগুলির জন্য) ব্যবহার করেন তবে আপনাকে কেবল আপনার ভার্চুয়াল পরিবেশ ডিরেক্টরিতে নিম্নলিখিত ফোল্ডারে geckodriver.exe লাগাতে হবে:

... \ my_virtual_env_directory \ স্ক্রিপ্ট \ geckodriver.exe


1
from webdriverdownloader import GeckoDriverDownloader # vs ChromeDriverDownloader vs OperaChromiumDriverDownloader
gdd = GeckoDriverDownloader()
gdd.download_and_install()
#gdd.download_and_install("v0.19.0")

এটি আপনাকে উইন্ডোতে আপনার gekodriver.exe পাওয়ার পথ পাবে

from selenium import webdriver
driver = webdriver.Firefox(executable_path=r'C:\\Users\\username\\\bin\\geckodriver.exe')
driver.get('https://www.amazon.com/')

0

ম্যাক 10.12.1 অজগর 2.7.10 আমার জন্য এই কাজ :)

def download(url):
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
browser = webdriver.Firefox(capabilities=firefox_capabilities,
                            executable_path=r'/Users/Do01/Documents/crawler-env/geckodriver')
browser.get(url)
return browser.page_source

0

আমি উইন্ডোজ 10 এবং অ্যানাকোন্ডা 2 ব্যবহার করছি। আমি সিস্টেমের পাথের ভেরিয়েবল সেট করার চেষ্টা করেছি কিন্তু কার্যকর হয়নি। তারপরে আমি অ্যানাকোন্ডা 2 / স্ক্রিপ্টস ফোল্ডারে কেবল জেকোড্রাইভার.এক্সি ফাইল যুক্ত করেছি এবং এখন সবকিছু দুর্দান্ত কাজ করে। আমার জন্য পথটি ছিল: -

সি: \ ব্যবহারকারী \ Bhavya \ Anaconda2 \ স্ক্রিপ্ট


0

আপনি যদি উইন্ডোজ 10 এ ড্রাইভারের পাথগুলি যুক্ত করতে চান:

  1. "এই পিসি" আইকনে রাইট ক্লিক করুন এবং "সম্পত্তি" নির্বাচন করুন এখানে চিত্র বর্ণনা লিখুন

  2. "উন্নত সিস্টেম সেটিংস" এ ক্লিক করুন

  3. স্ক্রিনের নীচে "পরিবেশ পরিবর্তনশীল" এ ক্লিক করুন
  4. "ব্যবহারকারী চলক" বিভাগে "পথ" হাইলাইট করুন এবং "সম্পাদনা করুন" এ ক্লিক করুন
  5. "নতুন" ক্লিক করে এবং আপনি যে ড্রাইভারটি যুক্ত করছেন এবং প্রবেশের জন্য হিট করছেন তার জন্য পাথ টাইপ করে আপনার চলকগুলিতে পাথগুলি যুক্ত করুন।
  6. একবার আপনি প্রবেশ করার পরে, "ঠিক আছে" ক্লিক করুন
  7. যতক্ষণ না আপনি সমস্ত স্ক্রীন বন্ধ করে দিয়ে থাকেন "ঠিক আছে" ক্লিক করে চলুন


0
  1. আপনার ড্রাইভার (গেকোড্রাইভার), x86 বা 64 এর সঠিক সংস্করণ রয়েছে তা নিশ্চিত করুন।
  2. আপনি সঠিক পরিবেশটি পরীক্ষা করছেন তা নিশ্চিত করুন, উদাহরণস্বরূপ কাজ একটি ডকারে চলছে, যেখানে এনভায়রনমেটটি পরীক্ষা করা হয়েছে এটি হোস্ট ওএস

0

আমার জন্য কেবল একই পরিবেশে জেকোড্রাইভার ইনস্টল করা যথেষ্ট ছিল:

$ brew install geckodriver

এবং কোডটি পরিবর্তন করা হয়নি:

from selenium import webdriver
browser = webdriver.Firefox()

0

আমার 5 সেন্ট যোগ করতে, এটি echo PATH(লিনাক্স) এবং আপনার পছন্দসই ফোল্ডারে জেকোড্রাইভারটি সরিয়ে নেওয়াও সম্ভব । যদি কোনও সিস্টেম (ভার্চুয়াল পরিবেশ নয়) ফোল্ডারটি লক্ষ্য হয় তবে ড্রাইভার বিশ্বব্যাপী অ্যাক্সেসযোগ্য হয়।

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