WebDriver'ı Chrome tarayıcısıyla çalıştırırken, tarayıcı düzgün şekilde başlamasına rağmen "Yalnızca yerel bağlantılara izin verilir" mesajı alınıyor


88

WebDriver kullanarak Chrome tarayıcısını çalıştırdığımda, konsolda aşağıdaki mesajı alıyorum. Lütfen nasıl çözeceğimi bana bildirin.

"ChromeDriver'ı (v2.10.267521) 22582 bağlantı noktasında başlatma" "Yalnızca yerel bağlantılara izin verilir."

İşte örnek kodum:

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();
    }
}

Yanıtlar:


97

Bu yalnızca bilgi amaçlı bir mesajdır. Mesajın size söylediği şey, Chromedriver yürütülebilir dosyasının yalnızca yerel makineden bağlantıları kabul edeceğidir.

Çoğu sürücü uygulaması (Chrome sürücüsü ve kesinlikle IE sürücüsü) bir HTTP sunucusu oluşturur. Dil bağlamalarının (Java, Python, Ruby, .NET, vb.) Tümü, sürücüyle iletişim kurmak ve tarayıcıyı otomatikleştirmek için bir HTTP üzerinden JSON protokolü kullanır. HTTP sunucusu, dil bağları tarafından oluşturulan HTTP isteklerini yalnızca açık bir bağlantı noktasında dinlediğinden, HTTP sunucusuna dil bağlamalarıyla başlatılan bağlantıların yalnızca aynı ana bilgisayardaki diğer işlemlerden gelmesine izin verilir. Bu sınırlamanın tarayıcının dış web sitelerine yapabileceği bağlantılar için geçerli olmadığını unutmayın ; daha ziyade diğer web sitelerinden gelen bağlantıları engeller .


Benim durumumda, tarayıcı açıldıktan sonra test durur ve sayfa boştur. URL'de Not secure data:, Yani bu anlamda bu bir sorun. neden olduğu hakkında bir fikrin var mı?
SMPH

Öyleyse, driver.get ( vb. ) kullanarak selenium ile https iletişimi kullanan bir web sitesine erişirsem , bu, o siteye gönderilen bilgilerin https ile şifrelenmiş olduğu anlamına mı gelir?
Mike Sandstrom

Bu yanıtta atıfta bulunulan HTTP (güvenli değil) iletişimi, dil bağları (Java, C #, Python, vb .'deki Selenium kodunuz) ile tarayıcı sürücüsü (krom sürücüsü, geckodriver, vb.) Arasındadır. Tarayıcı ile web sitesi arasındaki iletişim değişmez. Tarayıcıda HTTPS kullanıyorsanız, tarayıcı ile web sunucusu arasındaki iletişim yine de şifrelenmiş olmalıdır.
JimEvans

Bende de aynı sorun var: / Bu sorun çözüldü mü?
user3430861

13

Ben de tamamen aynı hataları alıyordum. Bugün bu konuyla birkaç saat mücadele ettim. Chromedriver ve selenium-server-standalone sürümleri arasındaki uyumsuzluktan kaynaklanıyor gibi görünüyordu. Config.js dosyası, krom sürücüsü 2.9 ve selenyum-sunucu-bağımsız 2.35.0 içeren bir dizine başvuruyordu. 2.10 ve 2.42.2'yi referans aldığımızdan emin olduktan sonra işe yaradı.


13

Mutlaka en iyi uygulama değil, ancak ortamım selenyum erişimi gerektiren birkaç makineye sahip yerel bir ağdı.

Chromedriver'ı çalıştırırken, aşağıdaki gibi bir parametreden geçebilirsiniz:

chromedriver --whitelisted-ips=""

Bu, temelde tüm IP'leri beyaz listeye alacaktır, elbette her zaman ideal bir çözüm değildir ve üretim ortamları için buna dikkat edin, ancak size ayrıntılı bir uyarı sunulmalıdır:

ChromeDriver 2.16.333244'ü (15fb740a49ab3660b8f8d496cfab2e4d37c7e6ca) 9515 numaralı bağlantı noktasından başlatma Tüm uzak bağlantılara izin verilir. Bunun yerine bir beyaz liste kullanın!

En iyi ihtimalle bir çözüm ama işe yarıyor.

Göreli giriş


5

Bu, bir süredir bakılmayan eski bir projeyi düzeltmek zorunda kaldığımda başıma geliyordu. Projeyle ilişkili krom sürücüsü benim Chrome sürümümle uyumlu değildi, bu nedenle krom sürücüsünü güncellediğimde sorunsuz çalıştı.


3

Bu yalnızca bilgi amaçlı bir mesajdır. Test komut dosyalarınız ve krom sürücünüz aynı makinedeyse hiçbir şey ifade etmez, o zaman "beyaz listeye alınmış ips" seçeneğini eklemek mümkündür. Testiniz sorunsuz çalışır. Ancak bir ızgara kurulumunda Chromedriver kullanıyorsanız, bu mesaj görünmez


3
bu kardeşi nasıl eklerim - "beyaz listeye alınmış ips". Ben de aynı sorunu yaşıyorum
Tanvir

2
Beyaz liste-ips nasıl eklenir? Windows kullanıyorum. Teşekkürler
garlapak

1

Komutlarımı ayrı ayrı değil tek ve aynı terminalde çalıştırmak zorunda kaldım .

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

Selenium ve ChromeDriver'ın uyumsuz sürümlerini kullanırsanız bu hata çok sık görülür.

Maven projesi için Selenium 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
Problemini nasıl çözebileceğini açıklamalısın. Sadece problemi tanımlıyorsunuz ama bunu nasıl çözeceksiniz? Örneğin hangi sürümler uyumludur?
Sebi

1
Bu kombinasyonu kullanıyorum: selenium-java 3.0.1 + ChromeDriver 2.27 (Chrome v54-56'yı destekliyor)
Vitali Nikolaenko

1

Tonlarca günlük ve kaynak kodunu okuyan saatlerce analiz ettikten sonra nihayet problem buldu. Ve çözmesi oldukça kolaydır.

tek satırda: --whitelisted-ips = Chrome sürücüsüne (chrome değil!) çalıştırılabilir dosyalara geçirmeniz gerekir

Bunu birkaç şekilde yapabilirsiniz:

ChromeDriver'ı yerel olarak / doğrudan koddan kullanıyorsanız, ChromeDriver başlatmadan önce aşağıdaki satırları eklemeniz yeterlidir.

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

Uzaktan kullanıyorsanız (örn. Selenium hub / grid), komutta olduğu gibi düğüm başladığında sistem özelliğini ayarlamanız gerekir:

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

veya geçirerek liman işçisi 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 bir WebDriver'dır. WebDriver, birçok tarayıcıda web uygulamalarının otomatik olarak test edilmesi için açık kaynaklı bir araçtır. Web sayfalarında gezinme, kullanıcı girişi, JavaScript çalıştırma ve daha fazlası için yetenekler sağlar. Bu sürücüyü çalıştırdığınızda, komut dosyalarınızın buna erişmesini ve Google Chrome'da komutları çalıştırmasını sağlar.

Bu, yerel ağda Only local connections are allowed.çalışan komut dosyaları ( ) veya dış ağlarda çalışan komut dosyaları ( ) aracılığıyla yapılabilir All remote connections are allowed.. Yerel Bağlantı seçeneğini kullanmak her zaman daha güvenlidir. Varsayılan olarak Chromedriver'ınıza bağlantı noktası üzerinden erişilebilir 9515.

Soruyu cevaplamak için, bu sadece bilgi amaçlı bir mesajdır. Bunun için endişelenmene gerek yok.

Aşağıda verilen her iki seçenektir.

$ 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.

Bu, tüm IP'leri beyaz listeye alarak yapılır.

$ 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

Tarayıcı sürücüsünü yükleyerek bu hatayı çözdüm:

  1. Tarayıcınızda seleniumhq.org web sitesine gidin
  2. İndirilenler sekmesini seçin
  3. Sayfayı Tarayıcı bölümüne kaydırın ve istediğiniz sürücüyü, örneğin Google Chrome Sürücüsü bağlantısını tıklayarak indirin.
  4. İndirilen dosyayı çift tıklayın, örneğin, chromedriver_mac64 (1) .zip
  5. Ayıklanan dosyaya çift tıklayın, örneğin krom sürücüsü

Referans: hatayı YouTube.com'da arayın

Platform: macOS High Sierra 10.13.3

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.