2015-04-16 11 views
6

Có một số câu hỏi tương tự như câu hỏi đã được đề cập trong SO (Question 1), (Question 2), nhưng không ai trong số đó đã nhận được câu trả lời (câu cuối có nhận xét thích hợp bởi @jdharrison chỉ đạo OP để gửi một vấn đề) . Đây là vấn đề của tôi:Lỗi RSelenium: NotConnectedException

Tôi đã từng có một kịch bản rất đơn giản để có được một số thông tin từ một trang web vào R:

startServer() 
rd<-remoteDriver(remoteServerAddr="localhost",port=4444,browserName="firefox") 
rd$open() 
rd$navigate(url) #with a defined url 

Khi tôi bây giờ thử và chạy kịch bản, sau khi rd$open() nó mở một firefox cửa sổ (mà giữ trống trong khoảng 30 giây), và sau đó đóng và trả về một lỗi:

rd$open() 
[1] "Connecting to remote server" 
Error: Summary: UnknownError 
    Detail: An unknown server-side error occurred while processing the command. 
    class: org.openqa.selenium.firefox.NotConnectedException 

Đọc qua bài viết khác nhau tại SO và một số trang web khác, có vẻ như vấn đề là do sự không tương thích của firefox và Phiên bản RSelenium.

Tại diễn đàn selenium trong GitHub, có một số thread trong đó tuyên bố rằng việc cập nhật selen từ 2,44 đến 2,45 đã giải quyết được sự cố. Nhưng tôi tránh khỏi thất bại như thế nào tôi có thể cập nhật selen, nếu RSelenium dường như được cập nhật:

sessionInfo() 
R version 3.1.2 (2014-10-31) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 

locale: 
[1] LC_COLLATE=Spanish_Colombia.1252 
[2] LC_CTYPE=Spanish_Colombia.1252 
[3] LC_MONETARY=Spanish_Colombia.1252 
[4] LC_NUMERIC=C      
[5] LC_TIME=Spanish_Colombia.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods 
[7] base  

other attached packages: 
[1] RSelenium_1.3.5 XML_3.98-1.1 RJSONIO_1.3-0 RCurl_1.95-4.3 
[5] bitops_1.0-6 

loaded via a namespace (and not attached): 
[1] caTools_1.17.1 tools_3.1.2 

Và build của tôi (nhiều khả năng thủ phạm):

rd$getStatus() 
$build 
$build$version 
[1] "2.44.0" 

$build$revision 
[1] "76d78cf" 

$build$time 
[1] "2014-10-23 20:02:37" 


$os 
$os$name 
[1] "Windows 8" 

$os$arch 
[1] "amd64" 

$os$version 
[1] "6.2" 


$java 
$java$version 
[1] "1.7.0_45" 

Làm thế nào tôi có thể làm để cập nhật selenium từ R (nếu nó có ý nghĩa gì, dĩ nhiên) ?,

Thậm chí tốt hơn: làm cách nào để tránh lỗi hiển thị trong tập lệnh trước đây?

Cảm ơn!

+0

Tôi đoán bạn đã thử với các url khác nhau. Cách giải quyết có thể là sử dụng 'PhanomJS' –

+0

@dimitiris_ps Cảm ơn bạn đã quan tâm. Tôi đã không thử với các url khác nhau. Tôi thậm chí không thể vào phần 'rd $ nav', vì nó bị treo ngay sau' rd $ open() '. Tôi sẽ thử PhatomJS và đăng ở đây bất kỳ kết quả nào. – PavoDive

+0

Hoàn nguyên về Firefox 34.0.5 nếu bạn sử dụng phiên bản cao hơn. (Tôi đã có lỗi đó. Và chuyển đổi trở lại giải quyết vấn đề.) – lukeA

Trả lời

2

Cập nhật máy chủ selen là đủ để tiếp tục làm việc với phiên bản firefox thực tế của tôi (37.0.1). Chạy mã:

unlink(system.file("bin", package = "RSelenium"), recursive = T) 
checkForServer() 

cập nhật RSelenium của tôi được tạo từ 2,44 lên 2,45. Ngay lập tức tôi đã có thể mở một trình duyệt như nó thường làm.

+0

Các trình duyệt đang di chuyển các mục tiêu và cập nhật thường xuyên. Firefox có một phiên bản LTS (hỗ trợ dài hạn) (tôi nghĩ rằng họ thực sự hạn nó là một ESR - Extended Support Release) mà là firefox 31 hiện tại và là firefox 24 trước đó. Phiên bản hiện tại của máy chủ Selenium sẽ hỗ trợ ESR và các phiên bản firefox gần đây. Bạn thường có thể xem phiên bản firefox nào hỗ trợ trên [CHANGELOG] [https://code.google.com/p/selenium/source/browse/java/CHANGELOG]. 'startServer (update = TRUE)' cũng nên hoạt động nhưng việc xóa các tệp cũ không gây hại. – jdharrison

+0

Nếu cập nhật firefox nói chung, bạn cần một Máy chủ Selenium mới nhất để lái nó. Đôi khi có một sự chậm trễ nhỏ giữa cập nhật firefox và cập nhật máy chủ Selenium. 2.45.0 là Máy chủ Selenium mới nhất và Firefox hiện tại là 37.0.1. – jdharrison