Saya mendapatkan kesalahan saat menggunakan Firefox dengan WebDriver.
org.openqa.selenium.firefox.NotConnectedException: Unable to connect
to host 127.0.0.1 on port 7055 after 45000 ms.
- Versi Firefox: 47.0
- Selenium: 2.53.0
- Windows 10 64 bit
Adakah yang mendapatkan masalah serupa atau tahu apa solusi untuk ini? Ini berfungsi dengan baik dengan Chrome tetapi dengan Firefox tidak ada URL yang dimuat.
Jawaban:
Sayangnya Selenium WebDriver 2.53.0 tidak kompatibel dengan Firefox 47.0. Komponen WebDriver yang menangani browser Firefox (
FirefoxDriver
) akan dihentikan. Mulai versi 3.0, Selenium WebDriver akan membutuhkangeckodriver
biner untuk mengelola browser Firefox. Info lebih lanjut disini dan disini .Oleh karena itu, untuk menggunakan Firefox 47.0 sebagai browser dengan Selenium WebDriver 2.53.0, Anda perlu mengunduh driver Firefox (yang merupakan file biner yang disebut
geckodriver
pada versi 0.8.0, dan sebelumnyawires
) dan mengekspor jalur absolutnya ke variabelwebdriver.gecko.driver
sebagai properti sistem dalam kode Java Anda:Untungnya, pustaka WebDriverManager dapat melakukan pekerjaan ini untuk Anda, yaitu mengunduh biner Marionette yang tepat untuk mesin Anda (Linux, Mac, atau Windows) dan mengekspor nilai properti sistem yang sesuai. Untuk menggunakan pustaka ini, Anda perlu menyertakan ketergantungan ini ke dalam proyek Anda:
... lalu jalankan baris ini di program Anda sebelum menggunakan WebDriver:
Contoh berjalan lengkap dari kasus uji JUnit 4 menggunakan WebDriver adalah sebagai berikut:
Perhatikan bahwa Marionette akan menjadi satu-satunya pilihan untuk masa depan (untuk WebDriver 3+ dan Firefox 48+), tetapi saat ini (versi 0.9.0 pada waktu penulisan) tidak terlalu stabil. Lihat peta jalan Marionette untuk detail lebih lanjut.
MEMPERBARUI
Selenium WebDriver 2.53.1 telah dirilis pada 30 Juni 2016.
FirefoxDriver
bekerja kembali dengan Firefox 47.0.1 sebagai browser.sumber
C:\Windows\system32>netstat -ano | find "7055" TCP 127.0.0.1:2896 127.0.0.1:7055 SYN_SENT 2052
Coba gunakan firefox 46.0.1. Ini paling cocok dengan Selenium 2.53
sumber
Saya mengalami masalah yang sama dan menemukan bahwa Anda perlu mengganti driver karena dukungan dibatalkan . Alih-alih menggunakan Pengandar Firefox , Anda perlu menggunakan Pengandar Marionette untuk menjalankan pengujian Anda. Saat ini saya sedang mengerjakan penyiapan sendiri dan dapat memposting beberapa langkah yang disarankan jika Anda mau ketika saya memiliki contoh yang berfungsi.
Berikut adalah langkah-langkah yang saya ikuti untuk membuatnya berfungsi di lingkungan Java saya di Mac (bekerja untuk saya di instalasi Linux saya (Fedora, CentOS dan Ubuntu) juga):
mkdir -p /opt/marionette
)$PATH
untuk memasukkan yang dapat dieksekusi (juga, edit Anda.bash_profile
jika Anda mau)chmod +x /opt/marionette/wires-x.x.x
agar dapat dieksekusiCatatan Cepat
Masih tidak berfungsi seperti yang diharapkan, tetapi setidaknya browser tersebut diluncurkan sekarang. Perlu mencari tahu mengapa - saat ini sepertinya saya perlu menulis ulang pengujian saya untuk membuatnya berfungsi.
Cuplikan Java
sumber
Jika Anda menggunakan OSX menggunakan Homebrew, Anda dapat menginstal versi Firefox lama melalui brew cask:
Setelah menginstal, Anda hanya perlu mengganti nama FF Anda yang dapat dieksekusi di direktori Aplikasi menjadi "Firefox".
Info lebih lanjut dapat ditemukan di git repo homebrew-firefox . Alat peraga untuk smclernon untuk membuat tong asli .
sumber
Jika Anda menggunakan Mac, lakukan
brew install geckodriver
dan pergilah!sumber
Jika ada yang bertanya-tanya bagaimana cara menggunakan Marionette di C #.
Mengganti FirefoxOptions untuk menyediakan fungsi untuk menambah kemampuan tambahan dan mengatur profil Firefox karena selenium v53 belum menyediakan fungsi itu.
Catatan: Meluncurkan dengan profil tidak bekerja dengan FF 47, ia bekerja dengan FF 50 Nightly.
Namun, kami mencoba mengonversi pengujian kami untuk menggunakan Marionette, dan itu tidak dapat dilakukan saat ini karena implementasi driver tidak selesai atau bermasalah. Saya menyarankan orang-orang menurunkan versi Firefox mereka saat ini.
sumber
Perpustakaan Selenium baru sekarang keluar, menurut: https://github.com/SeleniumHQ/selenium/issues/2110
Halaman unduhan http://www.seleniumhq.org/download/ sepertinya belum diperbarui, tetapi dengan menambahkan 1 ke versi minor di tautan, saya dapat mengunduh versi C #: http: // selenium-release. storage.googleapis.com/2.53/selenium-dotnet-2.53.1.zip
Ini berfungsi untuk saya dengan Firefox 47.0.1.
Sebagai catatan tambahan, saya hanya dapat membangun ekstensi webdriver.xpi Firefox dari cabang master di GitHub, dengan menjalankan
./go //javascript/firefox-driver:webdriver:run
- yang memberikan pesan kesalahan tetapi membangun file build / javascript / firefox-driver / webdriver.xpi , yang saya dapat mengganti nama (untuk menghindari bentrokan nama) dan berhasil memuat dengan metode FirefoxProfile.AddExtension. Itu adalah solusi yang masuk akal tanpa harus membangun kembali seluruh perpustakaan Selenium.sumber
Ini masalah FF47 https://github.com/SeleniumHQ/selenium/issues/2110
Harap turunkan versi ke FF 46 atau lebih rendah (atau coba pengembang FF48 https://developer.mozilla.org/en-US/Firefox/Releases/48 )
Petunjuk tentang cara menurunkan versi: https://www.liberiangeek.net/2012/04/how-to-install-previous-versions-of-firefox-in-ubuntu-12-04-precise-pangolin/ Atau jika Anda di Mac, seperti yang disarankan oleh orang lain di utas ini, gunakan minuman.
sumber
Firefox 47.0 berhenti bekerja dengan Webdriver.
Solusi termudah adalah beralih ke Firefox 47.0.1 dan Webdriver 2.53.1. Kombinasi ini bekerja lagi. Faktanya, memulihkan kompatibilitas Webdriver adalah alasan utama di balik rilis 47.0.1, menurut https://www.mozilla.org/en-US/firefox/47.0.1/releasenotes/ .
sumber
Anda dapat mencoba menggunakan kode ini,
Saya meningkatkan ke selenium 3.0.0 dan versi Firefox adalah 49.0.1
Anda dapat mengunduh geckodriver.exe dari https://github.com/mozilla/geckodriver/releases
Pastikan Anda mengunduh file zip saja, file geckodriver-v0.11.1-win64.zip atau win32 satu sesuai sistem Anda dan ekstrak di folder.
Letakkan jalur untuk folder tersebut di tanda kutip "Jalur Anda ke driver". Jangan lupa untuk meletakkan geckodriver.exe di jalur tersebut.
sumber
Saya akhirnya menginstal Firefox versi lama tambahan (digunakan untuk pengujian saja) untuk mengatasi masalah ini, selain instalasi Firefox terbaru saya yang biasa (aman, terbaru).
Ini mengharuskan webdriver mengetahui di mana ia dapat menemukan biner Firefox, yang dapat disetel melalui
webdriver.firefox.bin
propertinya.Apa yang berhasil untuk saya (mac, maven,
/tmp/ff46
sebagai folder instalasi) adalah:Untuk menginstal versi lama Firefox di folder khusus, buat folder, buka Finder di folder itu, unduh Firefox dmg, dan seret ke Finder itu.
sumber
Inilah masalahnya seperti di Wireshar k
Cukup muat 2.53.1 dan semuanya akan berfungsi.
sumber
Per September 2016
Firefox 48.0
danselenium==2.53.6
bekerja dengan baik tanpa kesalahanUntuk mengupgrade firefox
Ubuntu 14.04
sajasumber
Menurut saya, solusi terbaik adalah memperbarui ke Selenium 3.0.0, mengunduh geckodriver.exe, dan menggunakan Firefox 47 atau lebih tinggi.
Saya mengubah inisialisasi Firefox menjadi:
sumber
Saya dapat mengonfirmasi bahwa itu
selenium 2.53.6
berfungsifirefox 44
untuk saya di ubuntu 15.sumber