5

Tôi gặp sự cố khi thiết lập Selenium WebDriverJS. Mục tiêu của tôi là chạy thử nghiệm selen trên trình duyệt Chrome bằng cách sử dụng Javascript (nút).Selenium WebDriverJS, không thể tạo trình quản trị web cho Chrome

Tôi theo các hướng dẫn trên https://code.google.com/p/selenium/wiki/WebDriverJs cũng như https://code.google.com/p/chromedriver/wiki/GettingStarted

Trước tiên tôi tải về các chromedriver, và chạy nó trên một thiết bị đầu cuối:

$ ./chromedriver 
Starting ChromeDriver (v2.2) on port 9515 

Và sau đó, tôi cài đặt selen-webdriver:

$ npm install selenium-webdriver 
npm http GET https://registry.npmjs.org/selenium-webdriver 
npm http 304 https://registry.npmjs.org/selenium-webdriver 
[email protected] node_modules/selenium-webdriver 

Sau đó, tôi bắt đầu bảng điều khiển nút và cố gắng tạo cá thể webdriver

$ node 
> var webdriver = require('selenium-webdriver') 
undefined 
> var driver = new webdriver.Builder().usingServer('http://localhost:9515/wd/hub').withCapabilities(webdriver.Capabilities.chrome()).build(); 
undefined 
> 
timers.js:103 
      if (!process.listeners('uncaughtException').length) throw e; 
                    ^
UnknownCommandError: unknown command: wd/hub/session 
    at new bot.Error (/selenium/node_modules/selenium-webdriver/lib/atoms/error.js:109:18) 
    at Object.bot.response.checkResponse (/selenium/node_modules/selenium-webdriver/lib/atoms/response.js:103:11) 
    at /selenium/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:133:20 
    at /selenium/node_modules/selenium-webdriver/lib/goog/base.js:1178:15 
    at webdriver.promise.ControlFlow.runInNewFrame_ (/selenium-webdriver/lib/webdriver/promise.js:1438:20) 
    at notify (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:328:12) 
    at notifyAll (/selenium/node_modules/selenium-webdriver/lib/webdriver/promise.js:297:7) 
    at fulfill (/selenium/ 

Và bây giờ tôi bị chặn. Ai đó có thể giúp tôi về chuyện này được không? Tôi đang thiếu gì ở đây?

Cảm ơn

Trả lời

13

Vài thứ ở đây.

  1. Theo mặc định, máy chủ Chromedriver xử lý lệnh tại /, not/wd/hub. Vì vậy, bạn sẽ có thể làm:

    new webdriver.Builder().usingServer('http://localhost:9515').build(); 
    
  2. Nếu bạn muốn chromedriver có chữ ký giống như máy chủ Selenium độc lập, bắt đầu nó với --url-base=/wd/hub.

  3. Không cần để bắt đầu chromedriver mình - selen-webdriver sẽ làm điều đó cho bạn nếu bạn yêu cầu Chrome và bỏ qua một địa điểm máy chủ (chắc chắn chromedriver có thể được tìm thấy trên hệ thống của bạn PATH):

    new webdriver.Builder() 
        .withCapabilities(webdriver.Capabilities.chrome()) 
        .build(); 
    
+0

Cảm ơn bạn đã trả lời, tôi sẽ cố gắng! – haejeong87

+0

Cảm ơn rất nhiều, nó hoạt động hoàn hảo. Bây giờ, nếu tôi có thể hỏi, có cách nào để xác định vị trí của chromedriver trong mã thay vì sử dụng hệ thống PATH? – haejeong87

+4

Tôi đã phải khai thác mã nguồn, nhưng nó đã được giá trị nó! 'new chrome.ServiceBuilder (PATH_TO_BINARY) .build()' là khóa :) – haejeong87

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