У меня странная ошибка при использовании удаленного веб-драйвера в соусных лабораториях для моих тестов пользовательского интерфейса.это происходит при указании драйверу дождаться, пока элемент не будет найден.
await browser.wait(until.elementsLocated(By.css('#divID .someInnerClass')));
, и ошибка не всегда возникает.
WebDriverError: org.openqa.selenium.remote.RemoteWebElement cannot be cast to java.util.List
вот полная трассировка стека:
WebDriverError: org.openqa.selenium.remote.RemoteWebElement cannot be cast to java.util.List
[slee..some] at Object.checkLegacyResponse (node_modules/selenium-webdriver/lib/error.js:529:15)
[slee..some] at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:509:13)
[slee..some] at doSend.then.response (node_modules/selenium-webdriver/lib/http.js:441:30)
[slee..some] at process._tickCallback (internal/process/next_tick.js:68:7)
[slee..some] From: Task: WebDriver.findElements(By(css selector, #divID .someInnerClass))
[slee..some] at thenableWebDriverProxy.schedule (node_modules/selenium-webdriver/lib/webdriver.js:807:17)
[slee..some] at thenableWebDriverProxy.findElements (node_modules/selenium-webdriver/lib/webdriver.js:1048:22)
[slee..some] at /Users/username/workspace/node_modules/selenium-webdriver/lib/until.js:265:23
[slee..some] at /Users/username/workspace/node_modules/selenium-webdriver/lib/webdriver.js:938:14
[slee..some] at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:3092:14)
[slee..some] at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:3075:27)
[slee..some] at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2982:25)
[slee..some] at /Users/username/workspace/node_modules/selenium-webdriver/lib/promise.js:676:7
[slee..some] at process._tickCallback (internal/process/next_tick.js:68:7)
[slee..some] From: Task: <anonymous>
[slee..some] at pollCondition (node_modules/selenium-webdriver/lib/promise.js:2203:19)
[slee..some] at /Users/username/workspace/node_modules/selenium-webdriver/lib/promise.js:2199:7
[slee..some] at new ManagedPromise (node_modules/selenium-webdriver/lib/promise.js:1085:7)
[slee..some] at ControlFlow.promise (node_modules/selenium-webdriver/lib/promise.js:2513:12)
[slee..some] at /Users/username/workspace/node_modules/selenium-webdriver/lib/promise.js:2198:22
[slee..some] at TaskQueue.execute_ (node_modules/selenium-webdriver/lib/promise.js:3092:14)
[slee..some] at TaskQueue.executeNext_ (node_modules/selenium-webdriver/lib/promise.js:3075:27)
[slee..some] at asyncRun (node_modules/selenium-webdriver/lib/promise.js:2982:25)
[slee..some] at /Users/username/workspace/node_modules/selenium-webdriver/lib/promise.js:676:7
[slee..some] at process._tickCallback (internal/process/next_tick.js:68:7)
[slee..some] From: Task: Waiting for at least one element to be located By(css selector, #divID .someInnerClass)
[slee..some] at scheduleWait (node_modules/selenium-webdriver/lib/promise.js:2196:20)
[slee..some] at ControlFlow.wait (node_modules/selenium-webdriver/lib/promise.js:2525:12)
[slee..some] at thenableWebDriverProxy.wait (node_modules/selenium-webdriver/lib/webdriver.js:934:29)
[slee..some] at Context.<anonymous> (ui-tests/sanity.test.js:85:23)
[slee..some] at process._tickCallback (internal/process/next_tick.js:68:7)
возможности для удаленного веб-драйвера:
driver =
new Builder().
withCapabilities({
'browserName': 'internet explorer',
'platform': 'Windows 10',
'version': '11.103',
'name': "Test Suite",
'tag': "sauce-labs",
'build': "local",
'username': username,
'accessKey': accessKey,
}).
usingServer("http://" + username + ":" + accessKey +
"@ondemand.saucelabs.com:80/wd/hub").
build();
кто-нибудь когда-либо видел это раньше?Я немного погуглил и обнаружил похожую проблему в java со ссылкой на использование findElements вместо findElement, но, как вы можете видеть, я использую elementsLocated, который возвращает список, поэтому я не знаю, почему это происходит.