Lỗi khi thực hiện firefox không đầu thông qua Selenium


7

Tôi đang cố gắng thực thi firefox không đầu trên máy từ xa (chạy Ubuntu 16.04) thông qua Selenium thông qua SSH. Tuy nhiên, điều này mang lại cho tôi lỗi "Lỗi: GDK_BACKEND không khớp với màn hình có sẵn". Máy chủ của tôi chạy Windows. Tôi không muốn thấy đầu ra đồ họa. Nó chỉ đang được sử dụng để thử nghiệm selen.

Tôi đang sử dụng X Virtual Frame Buffer để hoạt động như một trình điều khiển giả:

Xvfb :10 -screen 0 1024x768x16 &

Tôi cũng đã xuất biến môi trường HIỂN THỊ với giá trị 10 cho trường hợp cụ thể này.

Tôi làm sai ở đâu?

EDIT: Khi tôi chỉ đơn giản chạy "sudo firefox" trong dòng lệnh của mình qua SSH sau khi chạy xvbf, không có lỗi nào được đưa ra. Lỗi chỉ được ném khi chạy firefox qua selen.

Thêm chi tiết: -

Tôi đang gọi firefox thông qua selen. Lỗi chính xác mà máy chủ độc lập selen đưa ra là: -

17:52:55.218 INFO - Executing: [new session: Capabilities     [{browserName=firefox, platform=ANY,     firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]])
17:52:55.230 INFO - Creating a new session for Capabilities   [{browserName=firefox, platform=ANY, firefox_profile=UEsDBBQAAAAAAJuOD0nf9RXUMgAAA...}]
org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host     127.0.0.1 on port 7055 after 45000 ms. Firefox console output:
Error: GDK_BACKEND does not match available displays

Rõ ràng ubfox không được xinitcài đặt theo mặc định , vì vậy, có thể, firefox không thể thấy rằng nó nên sử dụng xorg làm phụ trợ.
hóa dầu

@grochmal Tôi không thực sự biết sâu về xserver. Bạn có thể vui lòng giải thích tại sao tôi cần xinit?
goluhaque

Đó chỉ là do biến số GDK_BACKEND, nơi duy nhất tôi biết rằng nó được sử dụng là buộc GTK phải sử dụngwayland . Trong trường hợp đó, nó sẽ được đặt thành GDK_BACKEND=wayland. Tương đương với xorg sẽ là GDK_BACKEND=xinit(nhưng đó là một phỏng đoán).
hóa dầu

Rõ ràng điều này được gây ra do sự không tương thích giữa Firefox 48 và Selenium (phần mở rộng selen không được đăng nhập trong firefox 48 và firefox 48 chỉ chạy các phần mở rộng đã ký). Tôi chỉ đi trước với việc sử dụng chrome.
goluhaque

Câu trả lời:


2

Rõ ràng điều này được gây ra do sự không tương thích giữa Firefox 48 và Selenium (phần mở rộng selen không được đăng nhập trong firefox 48 và firefox 48 chỉ chạy các phần mở rộng đã ký). Tôi chỉ sử dụng chrome, vì trường hợp sử dụng của tôi không đặc biệt dành cho trình duyệt.


2

Tôi đã giải quyết vấn đề này với Firefox. Các bước là:

  1. Hạ cấp Firefox từ 49.0 xuống 46.0
  2. Cài đặt XVFB bằng lệnh sudo apt-get install xvfb
  3. Chạy Selenium bằng lệnh xvfb-run java8 -jar selenium-project.jar

Phiên bản Selenium của tôi là 2.53.1và Ubuntu 14.04.


0

Tôi không biết tại sao DISPLAYphương thức biến env không hoạt động, nhưng tôi đã chuyển sang sử dụng xvfb-run <command>(trong trường hợp của tôi xvfb-run npm test) và nó hoạt động rất tốt! :)


Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.