ক্রোমে সেলেনিয়াম ওয়েবড্রাইভার পাইথন বাইন্ডিং চলছে


147

সেলেনিয়ামের সাথে কাজ করার সময় আমি একটি সমস্যায় পড়েছি। আমার প্রকল্পের জন্য, আমাকে ক্রোম ব্যবহার করতে হবে। যাইহোক, আমি সেলেনিয়াম দিয়ে লঞ্চ করার পরে browser ব্রাউজারের সাথে সংযোগ করতে পারি না।

কিছু কারণে সেলেনিয়াম নিজে থেকে ক্রোম খুঁজে পাচ্ছে না। আমি যখন কোনও পথ ছাড়াই Chrome চালু করার চেষ্টা করি তখন এটি ঘটে:

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome() # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 58, in start
    and read up at http://code.google.com/p/selenium/wiki/ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'ChromeDriver executable needs to be available in the path.                 Please download from http://code.google.com/p/selenium/downloads/list                and read up at http://code.google.com/p/selenium/wiki/ChromeDriver'

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

Traceback (most recent call last):
  File "./obp_pb_get_csv.py", line 73, in <module>
    browser = webdriver.Chrome('/usr/bin/chromium') # Get local session of chrome
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/webdriver.py", line 46, in __init__
    self.service.start()
  File "/usr/lib64/python2.7/site-packages/selenium/webdriver/chrome/service.py", line 64, in start
    raise WebDriverException("Can not connect to the ChromeDriver")
selenium.common.exceptions.WebDriverException: Message: 'Can not connect to the ChromeDriver'

আমি এর সাথে ক্রোম চালু করেও সমস্যাটি সমাধান করার চেষ্টা করেছি:

ক্রোমিয়াম - রেমোট-শেল-পোর্ট = 9222

তবে এটিও কার্যকর হয়নি work

পুনশ্চ. আমার সিস্টেম সম্পর্কে কিছু তথ্য এখানে:

www-ক্লায়েন্ট: ক্রোমিয়াম 15.0.874.121  
দেব-ল্যাং: পাইথন 2.7.2-আর 3 সেলেনিয়াম 2.11.1  
ওএস: জিএনইউ / লিনাক্স জেন্টু কার্নেল ৩.১.০-ভদ্রু-আর 1

আমি আপনাকে কেবল জানতে চেয়েছিলাম যে "--remote-শেল-পোর্ট" কোনও বৈধ কমান্ড লাইন বিকল্প নয়। দেখুন: পিটার.শ / এক্সপেরিমেন্টস / ক্রোমিয়াম- কম্যান্ড- লাইন - সুইচস (" --রেট -ডিবাগিং-পোর্ট" সঠিক হবে Please বিকল্পটি ব্যবহার করার আগে আপনাকে সমস্ত ক্রোমিয়াম দৃষ্টান্ত বন্ধ করতে হবে দয়া করে সচেতন হন I বিদ্যমান ব্রাউজার সেশনে নতুন উইন্ডোটি কাজ করে না)।
dapt

উত্তর:


133

আপনাকে নিশ্চিত করতে হবে যে স্ট্যান্ডেলোন ক্রোমড্রাইভার বাইনারি (যা ক্রোম ব্রাউজারের বাইনারি থেকে আলাদা) হয় আপনার পথে বা ওয়েবড্রাইভার.চ্রোম.ড্রাইভার পরিবেশে পরিবর্তনশীল available

দেখতে http://code.google.com/p/selenium/wiki/ChromeDriverকীভাবে তারের জিনিস আপ হয় তার পুরো তথ্যের জন্য ।

সম্পাদনা:

ডানদিকে, পাইথন বাইন্ডিংগুলিতে একটি বাগ বলে মনে হচ্ছে পাথ থেকে ক্রোমড্রাইভার বাইনারি পড়ছে বা পরিবেশের পরিবর্তনশীল । মনে হচ্ছে ক্রোমড্রাইভার আপনার পথে না থাকলে আপনাকে এটি নির্মাণকারীর পক্ষে যুক্তি হিসাবে পাস করতে হবে।

import os
from selenium import webdriver

chromedriver = "/Users/adam/Downloads/chromedriver"
os.environ["webdriver.chrome.driver"] = chromedriver
driver = webdriver.Chrome(chromedriver)
driver.get("http://stackoverflow.com")
driver.quit()

দুঃখিত যে উল্লেখ করতে ভুলবেন না। আমি এই লিঙ্কটি পেয়েছি।
আখেন্দো

2
ফায়ারফক্স ওয়েবড্রাইভারের পরিবর্তে Chromedriver চেষ্টা করেছেন .. প্রায় 3 বার পারফরম্যান্স লাভ ..
উবারনিও

4
এছাড়াও, শুধুমাত্র সেই যুক্তি কন্সট্রাকটর প্রেরণ পাথ উল্লেখ করতে চান ChromeDriver বাইনারি এবং না ডিরেক্টরির ChromeDriver বাইনারি ধারণকারী (অতীত আধা ঘন্টার বরবাদ figuring কি ভুল যাচ্ছে হয়)।
TheRookierLearner

107

লিনাক্সের জন্য

  1. আপনি Chrome ব্রোউসার-> এর সর্বশেষতম সংস্করণ ইনস্টল করেছেন কিনা তা পরীক্ষা করে দেখুন chromium-browser -version
  2. যদি তা না হয় তবে ক্রোমের সর্বশেষ সংস্করণটি ইনস্টল করুন sudo apt-get install chromium-browser
  3. থেকে ক্রোম ড্রাইভারের উপযুক্ত সংস্করণ পান এখানে
  4. ক্রোমড্রাইভার.জিপ আনজিপ করুন
  5. /usr/binডিরেক্টরিটি ডিরেক্টরিতে সরানsudo mv chromedriver /usr/bin
  6. গোটো /usr/binডিরেক্টরিcd /usr/bin
  7. এখন, আপনি sudo chmod a+x chromedriverএটি সম্পাদনযোগ্য হিসাবে চিহ্নিত করার মতো কিছু চালানো দরকার ।
  8. অবশেষে আপনি কোডটি কার্যকর করতে পারেন।

    from selenium import webdriver
    
    driver = webdriver.Chrome()
    driver.get("http://www.google.com")
    print driver.page_source.encode('utf-8')
    driver.quit()
    display.stop()

1
খুব সুন্দর! একটি নোট: আমি কেবল 32-বিট ক্রোমড্রাইভারের সাথে কাজ করতে সক্ষম হয়েছি যদিও আমি 64-বিট লিনাক্স চালাচ্ছি।
ইমরান

উবুন্টুতে (১৪.০৪) আপনি ক্রোমিয়াম-ক্রোমড্রাইভার প্যাকেজ ইনস্টল করতে পারেন (উদাহরণস্বরূপ অ্যাপ্ট-গেট সহ) এবং প্যাথ শেল ভেরিয়েবল PATH = "$ AT PATH}": / usr / lib / ক্রোমিয়াম ব্রাউজার / যদি আপনি এটি আপনার .bashrc এ যুক্ত করেন তবে প্রতিবার আপনি সেলেনিয়াম দিয়ে পরীক্ষা করতে চাইলে এটি সেট করার দরকার নেই।
অর্পদ হরভথ

1
প্রকৃতপক্ষে এই উত্তরের আরও অনেকগুলি উত্সাহ হওয়া উচিত। গেকোড্রাইভারের মতো প্রতিটি ড্রাইভারের জন্য মূলত এটিই।
holzkohlengrill

আমার ক্রোমিয়াম-ব্রাউজার সংস্করণ হিসাবে উল্লেখ করা হয়েছে (ক্রোমিয়াম 67.0.3396.99 উবুন্টুতে নির্মিত, উবুন্টু 16.04 এ চলছে) তবে লিঙ্কটিতে কেবল 2.0-2.9 সংস্করণ রয়েছে। কিছু সাহায্য প্রয়োজন।
বৈভব মহেশ্বরী

93

কেবল ম্যাক ওএসএক্স

যাওয়ার সহজ উপায় (ধরে নিই যে আপনি ইতিমধ্যে হোমব্রু ইনস্টল করেছেন, যা আপনার যদি না হয় তবে প্রথমে এটি করা উচিত এবং হোমব্রিউ আপনার জীবনকে আরও সুন্দর করে তোলা উচিত) কেবলমাত্র নিম্নলিখিত আদেশটি চালানো হ'ল:

brew install chromedriver

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


এটি ম্যাকের কাজ করতে পারে না। selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable needs to be in PATH.
wyx

1
@Wyx আপনার পরিবেশ ঠিকঠাক নাও হতে পারে। দৌড়াতে চেষ্টা করুন brew doctorএবং দেখুন যে এটি কিছু খুঁজে পায় কিনা।
যাচিন

2
এটি এমন একটি উষ্ণ এবং अस्पष्ट মুহুর্তগুলির মধ্যে একটি যখন আপনি যখন খুশি হন যে আপনার কাছে ম্যাক রয়েছে। খুব সহজ.
ব্যবহারকারী

হৃদয়! আমি
বারু

52

উইন্ডোজ জন্য

এই সরাসরি লিঙ্ক থেকে ক্রোমড্রাইভার ডাউনলোড করুন বা এই পৃষ্ঠাটি থেকে সর্বশেষতম সংস্করণ পান

chromedriver.exeআপনার মধ্যে ফাইল আটকানC:\Python27\Scripts ফোল্ডারে ।

এটি এখন কাজ করা উচিত:

from selenium import webdriver
driver = webdriver.Chrome()

23

উইন্ডোগুলির জন্য, দয়া করে chromedriver.exeনীচে স্থাপন করুন<Install Dir>/Python27/Scripts/


আর উবুন্টু কোথায় রাখব? int /usr/lib/বা অন্য কোথাও?
গৌরব জৈন

ফাইলটি থাকা PATHযথেষ্ট ছিল না, এটি /Scripts/যেখানে ride.pyকাজ করা হয়েছে সেখানে রেখে ।
কিওয়ার্টি

1

গুগল ক্রোমে সেলেনিয়াম পাইথন পরীক্ষা চালানোর জন্য দুটি উপায় রয়েছে। আমি উইন্ডোজ বিবেচনা করছি (আমার ক্ষেত্রে উইন্ডোজ 10):

পূর্বশর্ত: সর্বশেষতম ক্রোম ড্রাইভার ডাউনলোড করুন: https://sites.google.com/a/chromium.org/chromedriver/downloads থেকে

উপায় 1:

i) ডাউনলোড করা জিপ ফাইলটি আপনার পছন্দের ডিরেক্টরি / ডিরেক্টরিতে এক্সট্রাক্ট করুন
ii) আপনার কোডে এক্সিকিউটেবল পাথটি নীচের মত সেট করুন:

self.driver = webdriver.Chrome(executable_path='D:\Selenium_RiponAlWasim\Drivers\chromedriver_win32\chromedriver.exe')

উপায় 2:

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

self.driver = webdriver.Chrome()

-1

উইন্ডোজ আইডিই জন্য:

যদি আপনার পথটি কাজ না করে তবে chromedriver.exeআপনি এই প্রকল্প কাঠামোর মতো আপনার প্রকল্পে যুক্ত করার চেষ্টা করতে পারেন ।

chromedriver.exe

তারপরে chromedriver.exeআপনার প্রধান ফাইলটি লোড করা উচিত । আমার জন্য আমি লোড driver.exeমধ্যে driver.py

def get_chrome_driver():
return webdriver.Chrome("..\\content\\engine\\chromedriver.exe",
                            chrome_options='--no-startup-window')

..মানে driver.py'sউপরের ডিরেক্টরি

.ডিরেক্টরি যেখানে driver.pyঅবস্থিত মানে

আশা করি এটি সহায়ক হবে।

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