Как собрать / запустить Safari 12 с Selenium 4-Alpha Webdriver с помощью javascript

Ранее я спрашивал Сеанс не создан Selenium / webdriver при использовании Safari 12

Я добавил selenium-server-4.0.0-alpha-1.jar, но все равно получаю ту же ошибку

browserUnderTest = new webdriver.Builder()
.usingServer( new safari.ServiceBuilder().addArguments('--legacy').build().start())
.forBrowser('safari')
.build();

Результаты в

SessionNotCreatedError: Request body does not contain required parameter 'capabilities'.
    at Object.throwDecodedError (/Users/learnincurv/Desktop/MyTestFramework/node_modules/selenium-webdriver/lib/error.js:514:15)
    at parseHttpResponse (/Users/learnincurv/Desktop/MyTestFramework/node_modules/selenium-webdriver/lib/http.js:519:13)
    at /Users/learnincurv/Desktop/MyTestFramework/node_modules/selenium-webdriver/lib/http.js:441:30
    at processTicksAndRejections (internal/process/task_queues.js:85:5)
From: Task: WebDriver.createSession()
    at Function.createSession (/Users/learnincurv/Desktop/MyTestFramework/node_modules/selenium-webdriver/lib/webdriver.js:769:24)
    at createDriver (/Users/learnincurv/Desktop/MyTestFramework/node_modules/selenium-webdriver/index.js:170:33)
    at Builder.build (/Users/learnincurv/Desktop/MyTestFramework/node_modules/selenium-webdriver/index.js:635:14)
    at Object.<anonymous> (/Users/learnincurv/Desktop/MyTestFramework/OUR_autotest.js:353:6)
    at Module._compile (internal/modules/cjs/loader.js:776:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:787:10)
    at Module.load (internal/modules/cjs/loader.js:643:32)
    at Function.Module._load (internal/modules/cjs/loader.js:556:12)
    at Function.Module.runMain (internal/modules/cjs/loader.js:839:10)
    at internal/main/run_main_module.js:17:11 {
  name: 'SessionNotCreatedError',
  remoteStacktrace: ''
}

Я не видел никаких доказательств того, что кто-то делал это успешно, и я надеюсь, что кто-то может указать, как заставить это работать без selenium-grid.


person QualiT    schedule 30.07.2019    source источник


Ответы (1)


Просто заново открыл несколько очевидный обходной путь, который заключается в том, чтобы запускать селен отдельно в другом терминале.

async function f() {
   startSelenium('open -a Terminal.app startSeleniumForSafari.sh');

   driver = new webdriver.Builder() 
   .forBrowser('safari')
   .usingServer('http://localhost:4444/wd/hub')
   .build();
}

f(); 

Сценарий оболочки просто:

echo "Starting Selenium"
java -jar selenium-server-4.0.0-alpha-1.jar -port 4444
echo "Selenium Started"
person QualiT    schedule 24.05.2020