क्रोम ब्राउज़र के साथ वेबड्राइवर चलाते समय, संदेश प्राप्त होता है, "ब्राउज़र ठीक से लॉन्च होने के बावजूद" केवल स्थानीय कनेक्शन की अनुमति है


85

जब मैं WebDriver का उपयोग करके क्रोम ब्राउज़र चलाता हूं, तो मुझे कंसोल पर निम्न संदेश मिल रहा है। कृपया मुझे बताएं कि इसे कैसे हल किया जाए।

"ChromeDriver (v2.10.267521) को पोर्ट 22582 पर शुरू करना" "केवल स्थानीय कनेक्शन की अनुमति है।"

यहाँ मेरा नमूना कोड है:

public class Browserlaunch {
    public static void main(String[] args) {
        System.setProperty("webdriver.chrome.driver", "C:\\chromedriver_win32   \\chromedriver.exe");
        WebDriver driver = new ChromeDriver() ;
        driver.get("http://webdunia.com");
        driver.close();
        driver.quit();
    }
}

जवाबों:


96

यह केवल सूचनात्मक संदेश है। क्या संदेश आपको बता रहा है कि क्रोमेड्राइवर निष्पादन योग्य केवल स्थानीय मशीन से कनेक्शन स्वीकार करेगा।

अधिकांश ड्राइवर कार्यान्वयन (Chrome ड्राइवर और IE ड्राइवर सुनिश्चित करने के लिए) एक HTTP सर्वर बनाते हैं। भाषा बाइंडिंग (जावा, पायथन, रूबी, .NET आदि) सभी ड्राइवर के साथ संचार करने और ब्राउज़र को स्वचालित करने के लिए एक JSON-over-HTTP प्रोटोकॉल का उपयोग करते हैं। चूंकि HTTP सर्वर केवल भाषा बाइंडिंग द्वारा उत्पन्न HTTP अनुरोधों के लिए एक खुले पोर्ट पर सुन रहा है, भाषा बाइंडिंग द्वारा शुरू किए गए HTTP सर्वर से कनेक्शन केवल उसी होस्ट पर अन्य प्रक्रियाओं से आने की अनुमति है। ध्यान दें कि यह सीमा उन कनेक्शनों पर लागू नहीं होती जो ब्राउज़र बाहरी वेबसाइटों के लिए कर सकते हैं; बल्कि यह अन्य वेबसाइटों से आने वाले कनेक्शन को रोकता है ।


मेरे मामले में ब्राउज़र और पृष्ठ खाली होने के बाद परीक्षण रुक गया है। Url में Not secure data:, तो इस अर्थ में यह एक मुद्दा है। क्या आपके पास कोई विचार है क्यों?
एसएमपीएच

इसलिए अगर मैं एक वेबसाइट का उपयोग करता हूं जो कि ड्राइवर.गेट ( आदि ... ) का उपयोग करके सेलेनियम के साथ https संचार का उपयोग करता है तो क्या इसका मतलब है कि उस साइट पर भेजी गई जानकारी को https के साथ एन्क्रिप्ट किया गया है?
माइक सैंडस्ट्रॉम

इस उत्तर में संदर्भित HTTP (सुरक्षित नहीं) संचार भाषा बाइंडिंग (आप जावा, सी #, पायथन, आदि में सेलेनियम कोड) और ब्राउज़र ड्राइवर (क्रोमेड्राइवर, जेकोड्राइवर, आदि) के बीच है। ब्राउज़र और वेबसाइट के बीच संचार अपरिवर्तित है। यदि आप ब्राउज़र में HTTPS का उपयोग कर रहे हैं, तो ब्राउज़र और वेब सर्वर के बीच संचार अभी भी एन्क्रिप्ट किया जाना चाहिए।
जिम इवांस

मेरे पास एक ही मुद्दा है: / क्या यह मुद्दा कभी तय किया गया था?
user3430861

13

मुझे ठीक वैसी ही त्रुटियां हो रही थीं। मैंने आज कुछ घंटों के लिए इस मुद्दे पर लड़ाई की। यह क्रोमेड्रिवर और सेलेनियम-सर्वर-स्टैंडअलोन के संस्करणों के बीच एक बेमेल की वजह से लग रहा था। Config.js फ़ाइल एक निर्देशिका का संदर्भ दे रही थी जिसमें क्रोमेड्रिवर 2.9 और सेलेनियम-सर्वर-स्टैंडअलोन 2.35.0 था। एक बार जब मैंने सुनिश्चित किया कि हम २.१० और २.४२.२ का संदर्भ दे रहे हैं, तो यह काम कर गया।


13

जरूरी नहीं कि सबसे अच्छा अभ्यास हो, लेकिन मेरा वातावरण कई मशीनों के साथ एक स्थानीय नेटवर्क था जिसे सेलेनियम तक पहुंच की आवश्यकता थी।

क्रोमेड्राइवर चलाते समय, आप एक परम से गुजर सकते हैं जैसे:

chromedriver --whitelisted-ips=""

यह मूल रूप से सभी आईपी का श्वेतसूची होगा, हमेशा एक आदर्श समाधान नहीं होगा और उत्पादन वातावरण के लिए इसके साथ सावधान रहना चाहिए, लेकिन आपको एक क्रिया चेतावनी के साथ प्रस्तुत किया जाना चाहिए:

ChromeDriver 2.16.333244 (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) पोर्ट 9515 पर प्रारंभ करना सभी दूरस्थ कनेक्शन की अनुमति है। इसके बजाय एक श्वेतसूची का उपयोग करें!

एक काम के आसपास सबसे अच्छा है, लेकिन यह काम करता है।

सापेक्ष चेक-इन


5

यह मेरे साथ हो रहा था जब मुझे एक पुराने प्रोजेक्ट को ठीक करना था जिसे थोड़ी देर में देखा नहीं गया था। परियोजना से जुड़ा क्रोमेड्राइवर क्रोम के मेरे संस्करण के साथ संगत नहीं था, इसलिए जब मैंने क्रोमेड्रिवर को अपडेट किया तो यह ठीक काम किया।


3

यह केवल सूचनात्मक संदेश है। इसका मतलब कुछ भी नहीं है यदि आपकी परीक्षण स्क्रिप्ट और क्रोमेड्रिवर एक ही मशीन पर हैं, तो "वाइटेल्ड-आईप्स" विकल्प जोड़ना संभव है। आपका परीक्षण ठीक चलेगा। यदि आप ग्रिड सेटअप में क्रोमेड्रिवर का उपयोग करते हैं, तो यह संदेश प्रकट नहीं होगा।


3
मैं इस ब्रू को कैसे जोड़ूं - "वाइटेल्ड-आईप्स"। मुझे एक ही समस्या है
तनवीर

2
कैसे श्वेतसूची-ips को जोड़ने के लिए। मैं खिड़कियों का उपयोग कर रहा हूँ। धन्यवाद
garlapak

1

मुझे अपने कमांड एक और एक ही टर्मिनल में चलाने थे , अलग-अलग नहीं।

nohup sudo Xvfb :10 -ac
export DISPLAY=:10
java -jar vendor/se/selenium-server-standalone/bin/selenium-server-standalone.jar -Dwebdriver.chrome.bin="/usr/bin/google-chrome" -Dwebdriver.chrome.driver="vendor/bin/chromedriver"

1

यदि आप सेलेनियम और क्रोमड्राइव के असंगत संस्करणों का उपयोग करते हैं तो बहुत बार यह त्रुटि दिखाई देती है।

सेवेनियम 3.0.1 मावेन परियोजना के लिए:

    <dependency>
        <groupId>org.seleniumhq.selenium</groupId>
        <artifactId>selenium-java</artifactId>
        <version>3.0.1</version>
    </dependency>

ChromeDriver 2.27: https://sites.google.com/a/chromium.org/chromedriver/downloads


1
आपको यह बताना चाहिए कि वह अपनी समस्या को कैसे हल कर सकता है। आप सिर्फ समस्या की पहचान करते हैं लेकिन इसे कैसे हल करें? उदाहरण के लिए कौन से वर्जन कॉम्पटिबेल हैं?
सेबी

1
मैं इस संयोजन का उपयोग करता हूं: सेलेनियम-जावा 3.0.1 + क्रोमड्राइवर 2.27 (यह क्रोम v54-56 का समर्थन करता है)
विटाली

1

लॉग और सोर्सकोड के टन पढ़ने के विश्लेषण के घंटों के बाद, अंत में समस्या मिली। और इसे हल करना काफी आसान है।

साइन लाइन में: आपको क्रोम चालक (क्रोम नहीं) में --whitelisted-ips = पास करने की आवश्यकता है !

आप इसे कुछ तरीकों से कर सकते हैं:

यदि आप कोड से स्थानीय रूप से / सीधे ChromeDriver का उपयोग करते हैं, तो ChromeDriver init से पहले बस नीचे लाइनें डालें

    System.setProperty("webdriver.chrome.whitelistedIps", "");

यदि आप इसे दूरस्थ रूप से उपयोग करते हैं (उदाहरण के लिए सेलेनियम हब / ग्रिड) तो नोड शुरू होने पर आपको सिस्टम प्रॉपर्टी सेट करने की आवश्यकता होती है, जैसे कमांड:

java -Dwebdriver.chrome.whitelistedIps= testClass etc...

या dov JAVA_OPTSenv पास करके

  chrome:
    image: selenium/node-chrome:3.141.59
    container_name: chrome
    depends_on:
      - selenium-hub
    environment:
      - HUB_HOST=selenium-hub
      - HUB_PORT=4444
      - JAVA_OPTS=-Dwebdriver.chrome.whitelistedIps=

0

Chromedriver एक WebDriver है। WebDriver कई ब्राउज़रों में वेब एप्लिकेशन के स्वचालित परीक्षण के लिए एक ओपन-सोर्स टूल है। यह वेब पेजों, उपयोगकर्ता इनपुट, जावास्क्रिप्ट निष्पादन, और अधिक के लिए नेविगेट करने की क्षमता प्रदान करता है। जब आप इस ड्राइवर को चलाते हैं, तो यह आपकी स्क्रिप्ट को इस तक पहुंचने और Google Chrome पर कमांड चलाने में सक्षम करेगा।

यह स्थानीय नेटवर्क में चल रही स्क्रिप्ट ( Only local connections are allowed.) या बाहरी नेटवर्क पर चलने वाली स्क्रिप्ट के माध्यम से किया जा सकता है ( All remote connections are allowed.)। स्थानीय कनेक्शन विकल्प का उपयोग करना हमेशा सुरक्षित होता है। डिफ़ॉल्ट रूप से आपका Chromedriver पोर्ट के माध्यम से सुलभ है 9515

प्रश्न का उत्तर देने के लिए, यह केवल एक सूचनात्मक संदेश है। आपको इसके बारे में चिंता करने की ज़रूरत नहीं है।

नीचे दिए गए दोनों विकल्प हैं।

$ chromedriver

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
Only local connections are allowed.
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

यह सभी IP को श्वेतसूचीबद्ध करके है।

$ chromedriver --whitelisted-ips=""

Starting ChromeDriver 83.0.4103.39 (ccbf011cb2d2b19b506d844400483861342c20cd-refs/branch-heads/4103@{#416}) on port 9515
All remote connections are allowed. Use a whitelist instead!
Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
ChromeDriver was started successfully.

-4

मैंने ब्राउज़र ड्राइवर स्थापित करके इस त्रुटि को हल किया:

  1. अपने ब्राउज़र को seleniumhq.org वेबसाइट पर नेविगेट करें
  2. डाउनलोड टैब चुनें
  3. पृष्ठ को ब्राउज़र सेक्शन तक स्क्रॉल करें और लिंक पर क्लिक करके इच्छित ड्राइवर डाउनलोड करें, उदाहरण के लिए, Google Chrome ड्राइवर
  4. डाउनलोड की गई फ़ाइल पर डबल-क्लिक करें, उदाहरण के लिए, chromedriver_mac64 (1) .zip
  5. निकाली गई फ़ाइल पर डबल-क्लिक करें, उदाहरण के लिए, क्रोमेड्रिवर

संदर्भ: त्रुटि के लिए YouTube.com खोजें

प्लेटफ़ॉर्म: macOS हाई सिएरा 10.13.3

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.