Каратэ - как поместить значение переменной в конфигурацию драйвера (настроить в JS, прочитать значения в элементах - фон) - PullRequest
1 голос
/ 14 апреля 2020

Я не могу использовать переменную в конфигурации драйвера (фоновый файл).

1) переменная определена в JS файле конфигурации (karate-config. js):

config.driverType = 'geckodriver';
config.driverExecutable = 'geckodriver';
config.driverStart = false;
config.driverPort = 4444;

2) в файле объектов (фоновый раздел) Мне нужно изменить драйвер в соответствии со значениями переменной:

configure driver = { type: driverType, executable: driverExecutable, start: driverStart, port: driverPort}

, чтобы получить такой же результат для этого (это работает):

configure driver = { type: 'geckodriver', executable: 'geckodriver', start: false, port: 4444} 

3) когда я написал переменную «print driverType» в сценарии, значение выводилось правильно:

[print] geckodriver

, но конфигурация драйвера не удалась:

WARN  com.intuit.karate - unknown driver type: driverType, defaulting to 'chrome'

ERROR com.intuit.karate - driver config / start failed: class java.lang.String cannot be cast to class java.lang.Boolean (java.lang.String and java.lang.Boolean are in module java.base of loader 'bootstrap'), options: {type=chrome, executable=driverExecutable, start=driverStart, port=driverPort, target=null}

Не могли бы вы помочь мне Решив эту проблему, можно изменить настройки драйвера в файле JS (обычно - как вставить переменную в конфигурацию драйвера)?

Спасибо.

1 Ответ

1 голос
/ 14 апреля 2020

Просто внесите это изменение:

* configure driver = { type: '#(driverType)', executable: '#(driverExecutable)', start: '#(driverStart)', port: '#(driverPort)' }

Или это также должно работать:

* configure driver = ({ type: driverType, executable: driverExecutable, start: driverStart, port: driverPort })

Существует небольшая разница, объясненная здесь: https://github.com/intuit/karate#enclosed - javascript

Кстати, вы можете выполнить конфигурацию, подобную этой, также в karate-config.js:

config.driverConfig = { type: 'geckodriver', executable: 'geckodriver' };

И это будет работать в файле возможностей:

* configure driver = driverConfig

И вы можете полностью настроить драйвер в karate-config.js, если хотите:

* karate.configure('driver', { type: 'geckodriver', executable: 'geckodriver' });
...