কিছু ব্রাউজার ক্রিয়াকলাপ স্বয়ংক্রিয় করতে আমি সেলেনিয়াম আরসি ব্যবহার করছি তবে আমি ব্রাউজারটি অদৃশ্য হয়ে থাকতে চাই। এটা কি সম্ভব? কীভাবে? সেলেনিয়াম গ্রিড সম্পর্কে কী? আমি কি সেলেনিয়াম আরসি উইন্ডোটিও আড়াল করতে পারি?
কিছু ব্রাউজার ক্রিয়াকলাপ স্বয়ংক্রিয় করতে আমি সেলেনিয়াম আরসি ব্যবহার করছি তবে আমি ব্রাউজারটি অদৃশ্য হয়ে থাকতে চাই। এটা কি সম্ভব? কীভাবে? সেলেনিয়াম গ্রিড সম্পর্কে কী? আমি কি সেলেনিয়াম আরসি উইন্ডোটিও আড়াল করতে পারি?
উত্তর:
কয়েকটি অপশন আছে:
আপনি সেলেনিয়াম গ্রিডটি ব্যবহার করতে পারেন যাতে ব্রাউজারটি সম্পূর্ণ আলাদা মেশিনে (বা ভার্চুয়াল মেশিনে) খোলা থাকে যা আপনি যদি ব্রাউজারটি দেখতে চান তবে ভিএনসি বা রিমোট ডেস্কটপ সংযোগের মাধ্যমে সংযোগ করতে পারেন। এছাড়াও, অন্য একটি বিকল্প: আপনি যদি সেই রিমোট সার্ভারে জেনকিন্স ফোরগ্রাউন্ড প্রক্রিয়া চালনা করেন তবে এটি আপনার টেস্ট প্রকল্পটি ডেস্কটপে কার্যকর করতে পারে।
আপনি এক্সভিএফবিতে লিনাক্সে সেলেনিয়াম 'হেডলেস' চালাতে পারেন। আমি এটি করার চেষ্টা করিনি এবং সন্দেহ করার জন্য এটি সত্যই চেষ্টা করার পক্ষে মূল্যবান। http://www.alittlemadness.com/2008/03/05/running-selenium-headless/
আপনি উইন্ডোজ পরিষেবাতে সেলেনিয়াম আরসি মোড়ানো করতে পারেন। http://support.microsoft.com/kb/137890 । উইন্ডোজগুলির পরবর্তী সংস্করণগুলিতে অনুমতিগুলির সীমাবদ্ধতাগুলি ব্যতীত সম্ভবত সেলেনিয়াম আমাদের করার অনুমতি হিসাবে ব্যবহৃত উইন্ডোজ 2000 এর মতো ডেস্কটপ অ্যাক্সেস করা থেকে বিরত করবে।
আরেকটি বিকল্প হ'ল ওয়েবড্রাইভার এইচটিএমএল ইউনাইটড্রাইভারের মতো কিছু ব্যবহার করা হবে যা 'রিয়েল' ব্রাউজারটি চালু করে না। http://code.google.com/p/webdriver/ । এছাড়াও একটি ফ্যান্টমজেএস বিকল্পের পাশাপাশি 'হেডলেস ক্রোম' রয়েছে যা আপনি ব্যবহার করতে পারেন।
অবশ্যই সস ল্যাবগুলির মতো একটি পরিষেবা ব্যবহার করার বিকল্প রয়েছে, যেখানে আপনি মেঘে চালানোর জন্য আপনার পরীক্ষাগুলি পেতে পারেন। আপনার পরীক্ষা শেষ হওয়ার পরে আপনি তাদের চলমান একটি ভিডিও দেখতে পারেন।
লিনাক্সে, আপনি ব্রাউজারটি আড়াল করতে একটি হেডলেস (ভার্চুয়াল) ডিসপ্লেতে ওয়েবড্রাইভার চালাতে পারেন। এটি এক্সভিএফবি (এক্স ভার্চুয়াল ফ্রেমবফার) দিয়ে করা যেতে পারে।
আপনি পাইথন কোডটি ব্যবহার করে সরাসরি এক্সভিএফবি নিয়ন্ত্রণ করতে পারেন xvfbwrapper
:
https://github.com/cgoldberg/xvfbwrapper
হেডলেস চালানোর জন্য পাইথন কোডটি দেখতে এই রকম হবে:
from selenium import webdriver
from xvfbwrapper import Xvfb
display = Xvfb()
display.start()
# now Firefox will run in a virtual display.
# you will not see the browser.
driver = webdriver.Firefox()
driver.get('http://www.google.com')
print(driver.title)
driver.quit()
display.stop()
ডেবিয়ান / উবুন্টুতে নির্ভরতা ইনস্টল করুন:
$ sudo apt-get install xvfb
$ pip install xvfbwrapper
আমি সহজেই ব্রাউজার উইন্ডোটি আড়াল করতে সক্ষম হয়েছি।
শুধু ফ্যান্টমজেএস ইনস্টল করুন । তারপরে, এই লাইনটি পরিবর্তন করুন:
driver = webdriver.Firefox()
প্রতি:
driver = webdriver.PhantomJS()
আপনার বাকী কোডটি পরিবর্তন করার দরকার নেই এবং কোনও ব্রাউজার খুলবে না। ডিবাগিং উদ্দেশ্যে, driver.save_screenshot('screen.png')
আপনার কোডের বিভিন্ন ধাপে ব্যবহার করুন।
driver = webdriver.PhantomJS(r"C:\\phantomjs\phantomjs.exe")
উইন্ডোজ পরিষেবা হিসাবে সেলেনিয়াম আরসির জন্য +1।
পরীক্ষাগুলি সম্পূর্ণ লুকিয়ে থাকার জন্য, আমি মনে করি আপনি উইন্ডোতে থাকলে আপনার কাছে খুব বেশি সমাধান নেই।
সারাক্ষণ অনলাইনে থাকতে এবং আপনার সেলেনিয়াম আরসি সার্ভার চালু থাকার জন্য আপনার ল্যানে কোনও কম্পিউটার উত্সর্গ করতে আমি এটি কী করব। সুতরাং আপনি আপনার পরীক্ষা চালানোর জন্য লোকালহোস্টের পরিবর্তে সেই কম্পিউটারের আইপি ব্যবহার করেন। উদাহরণ স্বরূপ:
browser = selenium("10.15.12.34",4444,"*firefox","http://saucelabs.com")
(এটি বিবেচনা করে সার্ভারটি চালিত কম্পিউটারের আইপি)।
সেটআপটি পেয়ে আপনি কম্পিউটারে আপনার পরীক্ষাগুলি চালাবেন, ব্রাউজারগুলি এবং আরসি সার্ভার উইন্ডো অন্য কম্পিউটারে রয়েছে এবং একবার হয়ে গেলে আপনার কাছে ফিরে যান।
লিনাক্সে, আপনি ভার্চুয়াল ডিসপ্লেতে আপনার পরীক্ষা ব্রাউজারটি চালাতে পারেন। xvfb
ভার্চুয়াল এক্স সার্ভার তৈরি করার জন্য আপনার প্যাকেজটির প্রয়োজন হবে । দেবিয়ান ভিত্তিক ডিস্ট্রোজে, কেবল চালান
sudo apt-get install xvfb
একটি দুর্দান্ত সরঞ্জাম রয়েছে ephemeral-x.sh
যা ভার্চুয়াল ডিসপ্লেতে চালানোর জন্য কোনও কমান্ডটি সুবিধামত সেট করবে। এটি ডাউনলোড করুন এবং কার্যকর করুন:
wget https://raw.github.com/jordansissel/xdotool/master/t/ephemeral-x.sh
chmod +x ephemeral-x.sh
তারপরে আপনি কেবল সেলেনিয়াম সার্ভারটি শুরু করতে এটি ব্যবহার করতে পারেন:
./ephemeral-x.sh java -jar selenium-standalone.jar
সেলেনিয়াম দ্বারা নির্মিত সমস্ত ব্রাউজার উইন্ডোজ এখন ভার্চুয়াল প্রদর্শন ব্যবহার করবে এবং আপনার কাছে অদৃশ্য হবে।
আপনি যদি উইন্ডোতে থাকেন তবে একটি বিকল্প হ'ল ভিন্ন ব্যবহারকারীর অ্যাকাউন্টের অধীনে পরীক্ষা চালানো । এর অর্থ ব্রাউজার এবং জাভা সার্ভারটি আপনার নিজের অ্যাকাউন্টে দৃশ্যমান হবে না।
এইভাবেই আমি লিনাক্স ডেস্কটপে (উবুন্টু) মেভেনের সাথে আমার পরীক্ষা চালাই। সর্বদা ফোকাস নিয়ে ফায়ারফক্স ওয়েবড্রাইভারের সাথে কাজ করতে না পেরে আমি বিরক্ত হয়ে পড়েছি।
আমি এক্সভিএফবি ইনস্টল করেছি
xvfb- চালান একটি এমভিএন ক্লিন ইনস্টল
এটাই
অনেক ক্ষেত্রে ফ্যান্টমজেএস আপনার প্রয়োজনগুলির সাথে পুরোপুরি খাপ খায় না, আমি ডেভ হান্টের উত্তরে উল্লিখিত শিরোনামহীন ক্রোম বিকল্পটি বিস্তারিতভাবে জানাতে চাই।
ক্রোম 57 সবেমাত্র এই বৈশিষ্ট্যটি চালু করেছে। আপনি ক্রোমড্রাইভারের মাধ্যমে - মাথা বিহীন পতাকাটি পেরিয়ে এটি ব্যবহার করতে পারেন, আরও তথ্যের জন্য এই প্রশ্নটিতে আলোচনাটি দেখুন
একটা PhantomJS সম্পর্কিত প্রকল্পের বলা হয় GhostDriver , যে একটি সেলেনিয়াম গ্রিড PhantomJS দৃষ্টান্ত webdriver টেলিগ্রাম তাদেরকে JSON প্রোটোকল ব্যবহার চালানোর জন্য বোঝানো হয়। আপনি সম্ভবত এটিই খুঁজছেন, যদিও এই প্রশ্নটি এখন 4 বছরের পুরানো।
ম্যাকোএসএক্স-এ, আমি ব্রাউজার উইন্ডোটি আড়াল করতে সক্ষম হইনি, তবে কমপক্ষে আমি কীভাবে এটি আলাদা ডিসপ্লেতে স্থানান্তর করব তা বুঝতে পেরেছিলাম যাতে এটি আমার কর্মপ্রবাহকে এতটা ব্যাহত করে না। ফায়ারফক্স যখন পরীক্ষা চালাচ্ছে, কেবল ডকটিতে তার আইকনটিকে নিয়ন্ত্রণ-ক্লিক করুন, বিকল্পগুলি নির্বাচন করুন এবং 2 প্রদর্শনের জন্য বরাদ্দ করুন।
curl -k https://gist.githubusercontent.com/terrancesnyder/995250/raw/cdd1f52353bb614a5a016c2e8e77a2afb718f3c3/ephemeral-x.sh -o ~/ephemeral-x.sh
chmod +x ~/ephemeral-x.sh
~/ephemeral-x.sh TestsStarterCommand
উপায় দ্বারা এটি কোনও বিকাশকারী E2e চলমান দ্বারা প্রয়োজনীয় এমন বৈশিষ্ট্য যা যৌক্তিকভাবে ব্রাউজারগুলিকে ছড়িয়ে দেবে। বিকাশের পরিবেশে উইন্ডোটি মোকাবেলা করা বিরক্তিকর হয় যা পপিং আপ করে চলে এবং যা পরীক্ষা দিয়ে ব্যর্থ হওয়ার কারণে আপনি ঘটনাক্রমে ইন্টারেক্ট করতে পারেন।
হেডলেস ক্রোম ব্যবহার করা আপনার সেরা বাজি হবে বা এটির সাথে ইন্টারঅ্যাক্ট করার জন্য আপনি সরাসরি সাইটে পোস্ট করতে পারেন যা অন্যান্য জিনিস / প্রক্রিয়াগুলির জন্য প্রচুর পরিমাণে শক্তি সঞ্চয় করতে পারে। আমি সিপিইউ ভারী উপাদান ব্যবহার করে একাধিক সাইটে জুতা সন্ধানকারী ওয়েব অটোমেশন বটগুলি পরীক্ষা করার সময় আমি এটি ব্যবহার করি, আপনি যত বেশি শক্তি সঞ্চয় করেন এবং আপনার প্রোগ্রামটি যত সহজ হয়, এক মুহুর্তে আরও একাধিক প্রক্রিয়া এমএইচসি আরও বেশি গতিতে চালানো আরও সহজ এবং নির্ভরযোগ্যতা