2016-08-04 18 views
6

Tôi đang cố gắng để thiết lập chromeOptions trong file config thước đo của tôi qua các lệnh sau:Làm thế nào để thiết lập chromeOptions thước đo qua đối số dòng lệnh

protractor conf.js --capabilities.chromeOptions.args.0 start-fullscreen --capabilities.chromeOptions.args.1 display --capabilities.chromeOptions.args.2 :99 

Tôi đang chờ đợi kết quả để tìm một cái gì đó như thế này:

... 
capabilities: { 
    'browserName': 'chrome', 
    'chromeOptions': { 
    'args': ['start-fullscreen','display',':99'] 
    } 
}, 
... 

Khi tôi thử chạy các lệnh tuy nhiên, tôi nhận được lỗi sau đây trong webdriver

... 
Caused by: org.openqa.selenium.WebDriverException: unknown error: cannot parse capability: chromeOptions 
from unknown error: cannot parse args 
from unknown error: must be a list 
... 

Tôi không chắc chắn cách cấu trúc các đối số dòng lệnh của mình sao cho nó tạo ra args như một danh sách, hoặc nếu chức năng này không được hỗ trợ.

Đây là địa chỉ post nơi ai đó cố gắng tương tự, nơi chức năng dường như bị cố ý bỏ qua. Tuy nhiên, this post dường như ngụ ý rằng chức năng này đã được thêm gần đây.

Nếu không thể đặt thông qua dòng lệnh, có công việc xung quanh không? Tôi cần phải thay đổi hiển thị cho mỗi cuộc gọi protractor, có thể nó có thể được thực hiện trong onPrepare thông qua params (lưu ý: params không thể được tham chiếu trong conf.js bên ngoài onPrepare).

Trả lời

0

Danh sách các đối số dòng lệnh được chuyển tới chromedriver có thể được tạo bằng cách chuyển nhiều số --capabilities.chromeOptions.args đến protractor. Mỗi cần được theo sau bởi dấu bằng và đối số dòng lệnh bằng nhau. Không cần phải xác định vị trí các đối số theo cách thủ công trong các mảng args.

Nếu tùy chọn dòng lệnh mong đợi đối số bổ sung, giá trị của nó có thể được tách biệt với tên tùy chọn bằng cách sử dụng dấu bằng.

Vì vậy, trong ví dụ của bạn, bạn nên sử dụng:

protractor conf.js --capabilities.chromeOptions.args="start-fullscreen" --capabilities.chromeOptions.args="display=:99" 

Cần lưu ý rằng WebdriverJS hy vọng chromeOptions[args] là một mảng, trong khi đi đơn chuyển đổi dòng lệnh sẽ ép buộc nó vào chuỗi. Điều này có thể được giải quyết bằng cách đi qua bổ sung, hợp lệ chuyển đổi dòng lệnh đó sẽ bị bỏ qua:

# This won't work 
protractor conf.js --capabilities.chromeOptions.args="start-fullscreen" 
# This works as expected 
protractor conf.js --capabilities.chromeOptions.args="start-fullscreen" --capabilities.chromeOptions.args="fake-arg" 

workaround đó phải được sử dụng cho đến khi issue 4050 được giải quyết (vá có sẵn từ tháng, nhưng nó đã không được sáp nhập và phát hành chưa).

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