সেলেনিয়াম: ফায়ারফক্স প্রফাইলে ব্যতিক্রম প্রোফাইল লোড করা যায় না


96

প্রতি এই পূর্ববর্তী প্রশ্ন আমি সংস্করণ 2.0.1 থেকে সেলেনিয়াম আপডেট কিন্তু এখন আমি অন্য ত্রুটি আছে, এমনকি যখন প্রফাইল ফাইল অধীনে অস্তিত্ব /tmp/webdriver-py-profilecopy:

  ফাইল "/home/sult/Repository/Django/monitor/app/request.py", লাইন 236, সঞ্চালনায়
    ব্রাউজার = ফায়ারফক্স (প্রোফাইল)
  ফাইল __init__ এ 46 "লাইন" /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/webdriver.py "
    স্ব.বাইনারি, সময়সীমা),
  __Init__ এ "লাইন 46, ফাইল" /usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/ এক্সটেনশন_ সংযোগ.পি "
    স্ব.বাইনারি.লাঞ্চ_ব্রোজার (স্ব.প্রেম ফাইল)
  ফাইল "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", লঞ্চ 44, লঞ্চ_ ব্রাউজারে
    স্ব ._উইত_উন্টিল_ সংযোগযোগ্য () 
  ফাইল "/usr/local/lib/python2.7/dist-packages/selenium/webdriver/firefox/firefox_binary.py", লাইন 87, _ইউইট_ইন্টিল_ কানেক্টেবল
    ওয়েবড্রাইভারএক্সেপশন বাড়ান ("প্রোফাইল লোড করা যায় না Profile প্রোফাইল ডিরি:% s"% self.profile.path)
selenium.common.exferences.WebDriverException: প্রোফাইল লোড করা যায় না। প্রোফাইল দির: / tmp / ওয়েবড্রাইভার-পাই-প্রোফাইলকপি

কি সমস্যা? আমি কীভাবে এই সমস্যাটি সমাধান করতে পারি?

উত্তর:


132

হালনাগাদ:

সেলেনিয়াম দল সর্বশেষ সংস্করণে স্থির। প্রায় সমস্ত পরিবেশের জন্য ঠিক করাটি হ'ল:

পাইপ ইনস্টল - ইউ সেলেনিয়াম

এটি কোন সংস্করণে ঠিক করা হয়েছিল তা স্পষ্ট নয় (আপাতদৃষ্টিতে r13122 ) তবে অবশ্যই ২.২26.২০ (আপডেটের সময় বর্তমান) এটি ঠিক করা হয়েছে।


এই ত্রুটির অর্থ হ'ল _উইট_উন্টিল_কনেক্টেবলের সময় শেষ হয়ে যায়, কারণ কোনও কারণে কোডটি ফায়ারফক্সে লোড হওয়া ওয়েবড্রাইভার এক্সটেনশনে সংযোগ করতে পারে না।

আমি কেবলমাত্র এই ত্রুটিটি সেলেনিয়ামে পেয়েছি যেখানে আমি এই ত্রুটিটি পেয়েছি কারণ আমি একটি প্রক্সি ব্যবহার করার চেষ্টা করছি এবং প্রোফাইলের 4 টির মধ্যে দুটি কনফিগার করা পরিবর্তন ফায়ারফক্স দ্বারা গৃহীত হয়েছে, তাই প্রক্সিটির সাথে কথা বলার জন্য কনফিগার করা হয়নি প্রসার. এই ঘটছে কেন নিশ্চিত না...

https://github.com/seleniumhq/selenium-google-code-issue-archive/issues/2061


4
sudoমূল হিসাবে লগ ইন না হলে একটি যুক্ত করা প্রয়োজন। যাইহোক, এই একটি জীবনকাল ছিল! ধন্যবাদ !!
আবরণিল দাস

হ্যাঁ এটি ওয়েবড্রাইভার ধারণাটি ঠিক করতে সহায়তা করে: বার্তা: প্রোফাইলটি লোড করা যায় না।
টম আনন্দ

4
@ অভ্রানীলদাস আপনি sudoযদি একটি virtualenv(যা সম্ভবত আপনার ব্যবহার করা উচিত) ব্যবহার করছেন তবে আপনার প্রয়োজন হবে না ।
কোস

7
না, এই সমাধানটি ফায়ারফক্স 45.0 বি এবং সর্বশেষ সেলেনিয়াম (2.5.1) এর সাথে কাজ করে না
অ্যালেক্স জিপি

4
@ অ্যালেক্সজি.পি। আমি এই প্রশ্নের উত্তর প্রথম লিখেছিলাম 4.5 বছর আগে। আমি সন্দেহ করি যে যথেষ্ট সময় কেটে গেছে যে এটি একটি নতুন প্রশ্ন উত্থাপন করার উপযুক্ত হতে পারে। যদি আপনি তা করেন তবে দয়া করে এই প্রশ্নের একটি রেফারেন্স অন্তর্ভুক্ত করুন এবং: ক) আপনি উপরে যে ফায়ারফক্স এবং সেলেনিয়াম সংস্করণ দিয়েছেন; খ) আপনার ওএস; গ) আপনার পাইপের সংস্করণ। আমি অনুমান করতে পারি যে আপনার সমস্যাটি পাইপ সংস্করণের সাথে সম্পর্কিত হতে পারে, কারণ এটি গত 5 বছরে পরিবর্তিত হয়েছে।
রাচেল

31

উবুন্টুকে 12.04 এ উন্নীত করার পরেও আমার একই সমস্যা ছিল।

সমস্যাটি প্যাকেজের পক্ষে ছিল এবং এটি লাইব্রেরির সর্বশেষ সংস্করণে স্থির করা হয়েছে। শুধু সেলেনিয়াম লাইব্রেরি আপডেট করুন। প্রায় সমস্ত পাইথন পরিবেশের জন্য এটি হ'ল:

pip install -U selenium

কেন জানি না, তবে উলেক্টুতে ফায়ারফক্স 22.0 এবং 23.0 এর সাথে আমার সেলেনিয়াম ২.২৮.০ রয়েছে। শুধুমাত্র ফায়ারফক্সকে ১৮.০ এ ডাউনগ্রেড করা আমার পক্ষে সূক্ষ্ম কাজ করে (কখনও অন্য সংস্করণ পরীক্ষা করে না)।
দিমিত্রি

26

আমি এফএফ 32.0 এবং সেলেনিয়াম সেলেনিয়াম-2.42.1-পাই 2.7.egg এর সাথে একই সমস্যার মুখোমুখি হয়েছি। সেলেনিয়াম আপডেট করার চেষ্টা করা হয়েছে, তবে এটি ইতিমধ্যে সর্বশেষতম সংস্করণ। সমাধানটি ছিল ফায়ারফক্সকে 30 সংস্করণে ডাউনগ্রেড করা। প্রক্রিয়াটি এখানে:

#Download version 30 for Linux (This is the 64 bit)
wget http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/30.0/linux-x86_64/en-US/firefox-30.0.tar.bz2

tar -xjvf firefox-30.0.tar.bz2
#Remove the old version
sudo rm -rf /opt/firefox*
sudo mv firefox /opt/firefox30.0
#Create a permanent link
sudo ln -sf /opt/firefox30.0/firefox /usr/bin/firefox

এটি সমস্ত সমস্যার সমাধান করেছে এবং এই সংমিশ্রণটি আরও ভাল কাজ করে!


এই আমার সেটআপ স্থির !!
ম্যাকুমাওমুয়ের্তে

আমি কীভাবে আমার ম্যাকের ফায়ারফক্সকে ডাউনগ্রেড করব? আমি আমার ম্যাকটপের উপর 'ভার্চুয়ালেনভ'-এ স্কেরাপি / সেলেনিয়াম ব্যবহার করছি এবং একই ত্রুটি রয়েছে। আমি মনে করি যদি আমি আমার ম্যাককে ডাউনগ্রেড করি তবে এটি ঠিক হয়ে যাবে।
brkr

8

জেফ হোয়ের উত্তরটির সম্প্রসারণ হিসাবে , আরও একটি 'পাইথোনিক' উপায়টি webdriver.firefox.firefox_profile.FirefoxProfileনিম্নোক্তভাবে সাবক্লাস করা হবে :

class CygwinFirefoxProfile(FirefoxProfile):
    @property
    def path(self):
        path = self.profile_dir
        # Do stuff to the path as described in Jeff Hoye's answer
        return path

তারপরে, আপনার ড্রাইভার তৈরি করতে:

driver = webdriver.Firefox(firefox_profile=CygwinFirefoxProfile())

5

যদি pip install -U seleniumকাজ না করে (এটি আমার ক্ষেত্রে হয় নি) তবে আপনার ফায়ারফক্সকে আগের সংস্করণে ডাউনগ্রেড করার চেষ্টা করুন।

সংস্করণটি সেলেনিয়াম দ্বারা সমর্থিত কিনা তা নিশ্চিত করার জন্য আমার কাছে ফায়ারফক্স 49.0 ছিল এবং 45.0 এ ডাউনগ্রেড হয়েছিল। এটি তখন পুরোপুরি কাজ করেছিল।

ফায়ারফক্স ৪৫.০ এ ডাউনগ্রেড করার একটি দ্রুত উপায়:

sudo apt-get install firefox=45.0.2+build1-0ubuntu1

আশাকরি এটা সাহায্য করবে.


4

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

এই ফাইল / পদ্ধতিতে: selenium.webdriver.firefox.firefox_binary.launch_browser ():

প্রতিস্থাপন:

    self._start_from_profile_path(self.profile.path)

সঙ্গে:

    from subprocess import Popen, PIPE
    proc = Popen(['cygpath','-d',self.profile.path], stdout=PIPE, stderr=PIPE)
    stdout, stderr = proc.communicate()
    path = stdout.split('\n', 1)[0]

    self._start_from_profile_path(path)
    #self._start_from_profile_path(self.profile.path)

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


3

আমারও একই সমস্যা ছিল এবং আমি বিশ্বাস করি এটি সেলেনিয়াম / ফায়ারফক্সের ভুল কম্বো। আমার। মোজিলা / ফোল্ডার অনুমতিগুলি কেবল রুট ব্যবহারকারীদের জন্য অ্যাক্সেসযোগ্য out করছেন chmod 770 ~/.mozilla/কৌতুক। আমি আরও সমস্যা সমাধানের আগে নিশ্চিত হয়ে ওঠা নিশ্চিত করে পরামর্শ দেব।


1

pip install -U selenium

আমি সঙ্গে এই একই সমস্যা ছিল Firefox 34.0.5 (Dec 1, 2014)থেকে এবং আপগ্রেড সেলেনিয়াম 2.42.1থেকে 2.44.0আমার সমস্যা সমাধান।

যাইহোক, আমি তখন থেকে আবার এই সমস্যাটি দেখেছি, আমার মনে হয় ২.৪৪.০ সহ অন্য একটি আপগ্রেড এটি ঠিক করেছে। তাই আমি ভাবছি যে এটি কেবল আনইনস্টল করে পুনরায় ইনস্টল করে ঠিক করা যেতে পারে। যদি তা হয় তবে আমি নিশ্চিত নই যে এটি অন্তর্নিহিত সমস্যাটি কী তা নির্দেশ করে।


আমার উইন্ডোতে ২.৪৪ এবং এফএফ 35-এর সাথে ঠিক একই সমস্যা আছে
পাইওভার

0

আমি সেলেনিয়াম 2.53 এবং ফায়ারফক্স সংস্করণ 55.0 ব্যবহার করছিলাম। আমি ফায়ারফক্সের পুরানো সংস্করণ (46.0.1) ইনস্টল করে এই সমস্যাটি সমাধান করেছি যেহেতু সেলেনিয়াম 2.53 ফায়ারফক্স সংস্করণ 47.0 এবং তার উপরে কাজ করবে না।


-1

এটি কোনও সঠিক সমাধান নয় তবে আমার পক্ষে কাজ করেছে, যদি কেউ উন্নতি করতে পারে তবে আমি তা জানতে পেরে আনন্দিত হব। আমি শুধু রুট হিসাবে আমার স্ক্রিপ্ট সঞ্চালন করুন: sudo python myscript.py। আমার ধারণা আমি প্রোফাইল ডিফল্ট ফাইল বা ডিরেক্টরিতে কাজ করতে পারে তা পরিবর্তন করে সমাধান করতে পারি।

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