2016-09-27 46 views
5

Môi trường: Win 7, Selenium 3.0.0 beta, FireFox- 49.0.1Làm thế nào để đóng geckodriver với selen 3.0.0 beta

System.setProperty("webdriver.gecko.driver","C:\\geckodriver.exe"); 

WebDriver driver=new FirefoxDriver();  

Issue 1:

Command: driver.close(); hoặc ((FirefoxDriver) driver).kill();

Kết quả mong đợi: Trình duyệt sẽ đóng.

Kết quả thực tế: Trình duyệt không đóng.

Vấn đề 2:

Command: driver.quit();

Dự kiến ​​kết quả: Trình duyệt nên đóng.

Kết quả thực tế: Firefox bị lỗi.

Lỗi: "Vùng chứa plugin cho FireFox đã ngừng hoạt động".

Bất kỳ đề xuất ...

+0

Đã có câu trả lời cho vấn đề này chưa? Phiên bản 52.0.2 và driver.close() đóng geckodriver không có vấn đề gì, nhưng driver.quit() đóng Firefox bằng Lỗi bạn đã đề cập –

Trả lời

0

Đây là cách giải quyết tạm thời với sendkeys unicodes:

Actions builder = new Actions(driver); 
builder.keyDown(Keys.ALT).sendKeys(String.valueOf('\u0066')); 
builder.sendKeys(String.valueOf('\u0058')); 
builder.perform(); 
+1

Không may mắn ... nó không hoạt động .. – Grs007

-1

Driver.close() nên làm việc mà không bất kỳ vấn đề.

Chúng tôi gặp sự cố với driver.quit();

Kiểm tra vấn đề ở đây - https://github.com/SeleniumHQ/selenium/issues/2701

+0

Tôi vừa chuyển sang tắc kè trình điều khiển https://github.com/mozilla/geckodriver/releases/download/v0.11.1/geckodriver-v0.11.1-linux64.tar.gz và driver.close() không hoạt động đối với tôi –

2

Dưới đây giải pháp được thử nghiệm trên Windows7 với Firefox49, Selenium 3.0.1, Python 3.5 và geckodriver-v0.11.1 và đang làm việc tốt.

import os 

Sau đó gọi

os.system('tskill plugin-container')

trước khi gọi driver.quit()

1

Bạn không thể. Đây là lỗi hiện tại vẫn đang mở. Vì vậy, trên hệ điều hành Windows, nếu một người cố gắng giết người lái xe FireFox có một errro: "Bắt Lỗi: 'Plugin container cho FireFox đã ngừng làm việc'

Tôi nghĩ rằng vấn đề này là mở như của ngày hôm nay:. https://github.com/SeleniumHQ/selenium/issues/2701

vấn đề này là không có mặt trên hệ điều hành khác và ChromeDriver tốt cloese. Nó chỉ là với FireFox và geckodriver.

+0

Vấn đề này bây giờ là FIXED. Nếu bạn sử dụng phiên bản mới nhất của FireFox, WebDriver và GeckoDriver .... FireFox sẽ tắt như mong đợi. –

0

đến \ Program Files (x86) \ Firefox \

tìm plugin-container.exe

xóa hoặc đổi tên nó!

tìm thấy giải pháp here

0

giải pháp đơn giản tôi đã cố gắng để chạy kiểm tra trên cửa sổ máy là thêm mã này trước driver.quit() hoặc driver.close() cho trình duyệt firefox sử dụng geckodriver

try { 
      Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe"); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
2

Giải pháp cho đến khi chúng tôi khắc phục sự cố này. Mặc dù một số bài viết cho thấy điều này đã được sửa trong phiên bản 50 trở lên, thực tế là điều này không hoạt động ổn định. Tôi đã cài đặt phiên bản mới nhất 54 trên hai máy tính của Windows 7 và trình điều khiển. Quit đang hoạt động tốt trên một và không hoạt động với cùng phiên bản Java và Selenium. Để thay thế, để thực thi trên các máy Windows, đoạn mã sau sẽ giúp tiêu diệt tất cả các tiến trình liên quan của Firefox.

if (browser == "FIREFOX")) { 
    try { 
     Runtime.getRuntime().exec("taskkill /F /IM geckodriver.exe"); 
     Runtime.getRuntime().exec("taskkill /F /IM plugin-container.exe"); 
     Runtime.getRuntime().exec("taskkill /F /IM firefox.exe"); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
} else { 
    driver.quit(); 
} 
0

driver.quit() đã làm việc cho tôi

driver.close() thì không.

Thể chất nhấp vào nút đóng bằng chuột không hoạt động.

Sử dụng Python 3.6, Selenium 3.4.3 cùng với geckodriver v.0.18.0 trên Ubuntu 16.04.

+0

Tôi có thể xác minh lại rằng điều này hoạt động trên python 2,7 + ubuntu 16. lưu ý, nếu bạn gọi trình điều khiển đóng trước khi thoát, điều này sẽ không hoạt động. – FlyingZebra1

Các vấn đề liên quan