2016-08-04 17 views
6

Próbuję ustawić chromeOptions w moim pliku config kątomierz za pomocą następującego polecenia:Jak ustawić chromeOptions kątomierz poprzez linię argumentacji dowodzenia

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

Czekam na wynik wyglądać mniej więcej tak:

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

gdy próbuję uruchamiając komendę jednak, pojawia się następujący błąd w 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 
... 

Nie jestem pewien, jak ustrukturyzować moje argumenty wiersza poleceń, tak aby tworzył on args jako listę lub jeśli ta funkcja nie jest obsługiwana.

Oto post, gdzie ktoś próbuje czegoś podobnego, gdzie funkcjonalność wydaje się celowo pominięta. Jednakże, this post wydaje się sugerować, że funkcja została ostatnio dodana.

Jeśli nie można ustawić za pomocą wiersza poleceń, czy jest jakieś obejście? Potrzebuję zmienić wyświetlacz dla każdego wywołania kątomierza, może to zrobić w onPrepare przez params (uwaga: params nie mogą być odwoływane w conf.js poza onPrepare).

Odpowiedz

0

Listę argumentów wiersza polecenia przekazywanych do chromedriver można skonstruować, przekazując wiele --capabilities.chromeOptions.args do protractor. Po każdym z nich powinien wystąpić sam znak równości i argument wiersza poleceń. Nie ma potrzeby ręcznego określania pozycji argumentów w tablicy args.

Jeśli opcje wiersza poleceń oczekują dodatkowego argumentu, jego wartość można oddzielić od nazwy opcji za pomocą znaku równości.

Więc w przykładzie, należy użyć:

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

Należy zauważyć, że WebdriverJS spodziewa chromeOptions[args] być tablicą, podczas przechodzenia jednego przełącznika wiersza polecenia będzie zmusić go do łańcucha. To może być obejść, przekazując dodatkowe, nieważne przełącznik wiersza polecenia, które będą ignorowane:

# 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" 

To obejście należy stosować aż issue 4050 został rozwiązany (Patch jest dostępny od marca, ale nie zostały połączone i zwolniony jeszcze).