I am trying a POC
on selenium grid. I am receiving this error :
Error forwarding the new session Empty pool of VM for setup Capabilities [{browserName=chrome, version=47, platform=WIN8_1}]
Below is the code :
BeforeTest
public void setup() throws MalformedURLException{
nodeURL="http://localhost:4444/wd/hub";
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setBrowserName("chrome");
capabilities.setVersion("47");
capabilities.setPlatform(Platform.WIN8_1);
extent = new ExtentReports("./extentReport.html",true,DisplayOrder.NEWEST_FIRST);
System.setProperty("webdriver.chrome.driver", "<path>\chromedriver.exe");
driver = new RemoteWebDriver(new URL(nodeURL),capabilities);
//driver = new ChromeDriver(capabilities);
driver.manage().window().maximize();
driver.get("http://www.qaonlinetraining.com");
}
Lukas Kabrt
5,4114 gold badges43 silver badges58 bronze badges
asked Dec 11, 2015 at 6:41
I just did a small tweak.
1). I launched the command prompt in «admin mode».
2). Gave the java path as «cd C:Program Files (x86)Java» in it
3). Then ran the command as «java -jar selenium-server-standalone-3.0.1.jar» without specifying any role
and Vollaaaa…it got fixed…!!!
Thanks to all of you for your help…Was after this error for last 3 days…a great relief must say..
Checkout this link for more information on how to do this…
https://stackoverflow.com/a/42187314/7551276
answered Feb 13, 2017 at 16:04
1
Launch Selenium-server-standalone with below commands as hub and node.
For hub:
java -jar selenium-server-standalone-2.48.2.jar -role hub
For node (Chrome):
java -jar selenium-server-standalone-2.48.2.jar -role node -hub http://localhost:4444/grid/register -browser "browserName=chrome,maxinstance=1,platform=WINDOWS" -Dwebdriver.chrome.driver=C:Seleniumchromedriver.exe
answered Dec 11, 2015 at 9:19
4
May be you have to get rid of -role hub option while setting up the node. Look at the discussion in this link.
https://github.com/angular/protractor/issues/1226
Note: Launch the command prompt in admin mode.
answered Dec 11, 2015 at 9:09
parishodakparishodak
4,4164 gold badges32 silver badges48 bronze badges
3
For hub execute the command as
java -jar selenium-server-standalone-3.141.59.jar -port 8080
For node execute the command as
java -Dwebdriver.chrome.driver=»C:program fileschromedriver.exe» -jar selenium-server-standalone-3.141.59.jar -role node -hub http://ipaddress:portnumber/grid/register -port 5556
To Remember (Do not specify the role for hub)
answered Mar 29, 2020 at 4:50
@lukeis
im facing same issue, im trying to lunch appium server within my java code with loading node configuration file using —nodeconfig argument programmatically as shown below but it doesn’t work and throws this error message :
22:06:17.748 INFO [RequestHandler.process] — Error forwarding the new session Empty pool of VM for setup Capabilities {appActivi…..etc
this is my baseSetup class
`public class BaseSetup {
protected static AndroidDriver<MobileElement> driver = null;
protected AppiumDriverLocalService service;
public WebDriverWait wait;
private ThreadLocalDriver threadLocalDriver = new ThreadLocalDriver();
@Parameters({"deviceName","platformVersion","udid","URL_","Sport","deviceId","sysPort","bootStrap","wdaPort","path"})
@BeforeMethod(alwaysRun = true)
public void setUp (String deviceName, String platformVersion, String udid, String URL_, String Sport, String deviceId, String sysPort, String bootStrap, String wdaPort, String path) throws MalformedURLException {
System.out.println("Driver Is Initiated");
DesiredCapabilities dc = new DesiredCapabilities();
// mobile setup
dc.setCapability(MobileCapabilityType.DEVICE_NAME, deviceName);
dc.setCapability("appium:deviceId", deviceId);
// dc.setCapability(«uiautomator2ServerInstallTimeout», «6000»);
// dc.setCapability(MobileCapabilityType.UDID,udid_);
dc.setCapability(MobileCapabilityType.PLATFORM_NAME, «Android»);
dc.setCapability(MobileCapabilityType.PLATFORM_VERSION, platformVersion);
dc.setCapability(AndroidMobileCapabilityType.SYSTEM_PORT, sysPort);
// dc.setCapability(AndroidMobileCapabilityType.KEY_PASSWORD,»cvcv»);
// dc.setCapability(«appium:unlockKey», «khjjh»);
dc.setCapability(MobileCapabilityType.AUTOMATION_NAME, «uiautomator2»);
//application setup
dc.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "vcvcv");
dc.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "cvcv");
dc.setCapability(AndroidMobileCapabilityType.AUTO_GRANT_PERMISSIONS,"true");
dc.setCapability(MobileCapabilityType.CLEAR_SYSTEM_FILES, true);
// driver configuration
int port = Integer.parseInt(Sport);
service = AppiumDriverLocalService
.buildService(new AppiumServiceBuilder()
.usingDriverExecutable(new File("/usr/local/bin/node"))
.withAppiumJS(new File("/Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/main.js"))
.withArgument(Arg.ADDRESS,URL_)
.withArgument(Arg.NODECONFIG,path)
.withArgument(Arg.BootstrapPort,bootStrap)
.withArgument(Arg.SESSIONOVERRIDE)
.withArgument(Arg.CALLBACKPORT,Sport)
.withArgument(Arg.WDALOCALPORT,wdaPort)
.usingPort(port));
service.start();
threadLocalDriver.setTLDriver(new AndroidDriver<MobileElement>(new URL("http://"+URL_+":4444/wd/hub"),dc));
driver = threadLocalDriver.getTLDriver();
wait = new WebDriverWait(driver, 10);
}
// @AfterMethod
// public void tearDown(){
// driver.quit();
// service.stop();
// System.out.println(«Driver quit»);
// }
@AfterMethod
public synchronized void teardown() {
if (driver != null) {
driver.quit();
service.stop();
// }
}
}
}
`
this is my testng xml file
`?xml version=»1.0″ encoding=»UTF-8″?>
<classes>
<class name="Tests.LandingPageTest"/>
</classes>
<test name="Note5">
<parameter name="deviceName" value="SM_N9208"/>
<parameter name="udid" value="0715f75124ea0934"/>
<parameter name="deviceId" value="192.168.1.9:5556"/>
<parameter name="platformVersion" value="7.0"/>
<parameter name="URL_" value="127.0.0.1"/>
<parameter name="Sport" value="5001"/>
<parameter name="bootStrap" value="4726"/>
<parameter name="sysPort" value="8240"/>
<parameter name="wdaPort" value="8240"/>
<parameter name="path" value="/Applications/Appium.app/Contents/Resources/app/node_modules/appium/build/lib/selenium/note5.json"/>
<classes>
<class name="Tests.LandingPageTest"/>
</classes>
</test> <!-- DemoProject -->
`
this is the console long :
org.openqa.selenium.SessionNotCreatedException: Unable to create a new remote session. Please check the server log for more details. Original error: Error forwarding the new session Empty pool of VM for setup Capabilities {appActivity: gfhg, appPackage: hjgh, appium:deviceId: 192.168.1.9:5556, autoGrantPermissions: true, automationName: uiautomator2, clearSystemFiles: true, deviceName: SM_N9208, platformName: android, platformVersion: 7.0, systemPort: 8240}
Command duration or timeout: 484 milliseconds
command used for selenium grid is
java -jar selenium-server-standalone-3.141.59.jar -role hub
[TestNG] Running: C:UsersuserAppDataLocalTemptestng-eclipse-2068414740testng-customsuite.xml FAILED CONFIGURATION: @BeforeMethod setUp org.openqa.selenium.WebDriverException: Error forwarding the new session Empty pool of VM for setup Capabilities [{platform=WINDOWS, ensureCleanSession=true, browserName=internet explorer, version=}] Command duration or timeout: 200 milliseconds Build info: version: '2.41.0', revision: '3192d8a', time: '2014-03-27 17:17:32' System info: host: 'ksehgal', ip: '192.168.0.162', os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_67' Driver info: org.openqa.selenium.remote.RemoteWebDriver at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:595) at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:240)SKIPPED CONFIGURATION: @AfterMethod tearDown SKIPPED: windowsTest =============================================== Default test Tests run: 1, Failures: 0, Skips: 1 Configuration Failures: 1, Skips: 1 =============================================== =============================================== Default suite Total tests run: 1, Failures: 0, Skips: 1 Configuration Failures: 1, Skips: 1 =============================================== [TestNG] Time taken by org.testng.reporters.XMLReporter@6beb8639: 16 ms [TestNG] Time taken by [FailedReporter passed=0 failed=0 skipped=0]: 6 ms [TestNG] Time taken by org.testng.reporters.jq.Main@1a0c3b27: 44 ms [TestNG] Time taken by org.testng.reporters.EmailableReporter2@21d195ca: 4 ms [TestNG] Time taken by org.testng.reporters.SuiteHTMLReporter@390f8c82: 23 ms [TestNG] Time taken by org.testng.reporters.JUnitReportReporter@6ba52c90: 7 msHow I encountered this error
- Step1 Start selenium grid hub
java -jar selenium-server-standalone-2.41.0.jar -role hub
- Step2 Start executing test scripts.
- Step3 You will get the above error.
Solution
- You does not have any node in the selenium grid whole set up.
- Start command prompt from your local or some machine and execute this command
java -jar selenium-server-standalone-2.41.0.jar -role node -hub http://<hub-ip>:<hub-port>/grid/register
- Now run your tests again.
- They should run fine.
Conclusion
- To run your test scripts on a selenium grid network, you require a minimum of 1 hub and 1 node. So as to run your test scripts.
- Hub is responsible to take care of navigating your test scripts to the desired environment combination. And node will actually run your test scripts.
Khyati has more than 10 years of experience in quality assurance engineering.
Khyati has worked extensively on Manual and Automation testing of various technologies and domains like data quality. From last 6 years, She is leading QA Activities on Agile/Scrum projects while continuously contributing in playing role as a Scrum master, continuous integration, iteration planning, facilitating requirement analysis and closure.
On automation front, She has explored gui, web services and mobile automation.
Tools/ Technologies used:-
Selenium/WebDriver, Core Java, JUnit, TestNG, Maven, SoapUI. Jenkins, Appium, Selenium backed and selenium remote driver.
Have delve into android phone/tab of verison upto 6 (marshmallow), ios phone/i pad, and mobile websites
View all posts by Khyati Sehgal
#1
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 24 апреля 2012 — 13:33
Здравствуйте!
Возникла необходимость настроить Selenium Grid. Так как тесты написаны на Selenium Webdriver, то и решил использовать «RemoteWebDriver», но пока не удачно.
Я запустил хаб командой:java -jar selenium-server.jar -role hub.
Затем пытаюсь запустить RemoteWebDriver:
DesiredCapabilities desiredCapabilities = new DesiredCapabilities("firefox", "3.5.16", PlatformWin); RemoteWebDriver RemDriver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), desiredCapabilities);
на последней строчке получаю ошибку: «Error forwarding the new session Empty pool of VM for setup {platform=WINDOWS, browserName=firefox, version=3.5.16}».
Читал так же http://code.google.c…nium/wiki/Grid2
Код запускаю в VS 2008.
Язык C#.
Прошу помогите пожалуйста!
-
0
- Наверх
#2
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 25 апреля 2012 — 06:16
Попробовал по другому:
ICapabilities desiredCapabilities = DesiredCapabilities.Firefox(); RemoteWebDriver RemDriver = new RemoteWebDriver(new Uri("http://localhost:4444/wd/hub"), desiredCapabilities);
Ошибки не возникает.
Но если использовать Оперу, Хром или IE то появляется ошибка:
«Error forwarding the new session cannot find : {platform=ANY, browserName=opera, version=}».
Почему возникает ошибка ?
-
0
- Наверх
#3
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 25 апреля 2012 — 08:20
Кажется разобрался, хотя не до конца.
У меня при использовании оперы отображается ошибка, а на другом компьютере ошибка не возникает. Так и не понял почему.
И проблема с Chrome. Почему он не видит chromedriver.exe ? и где к нему прописать путь ?
-
0
- Наверх
#4
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 25 апреля 2012 — 09:40
Нашел как победить проблему с хромом
Она описана тут
И кстати опера заработала сама собой.
-
0
- Наверх
#5
ice-cream
ice-cream
-
- Members
-
- 12 сообщений
Новый участник
Отправлено 25 апреля 2012 — 10:44
я запускаю Хаб, запускаю ноды сл строчкой «java -jar selenium-server-standalone-2.21.0.jar -role webdriver -hub http://localhost:4444/grid/register -browser browserName=firefox,maxInstances=5,platform=WINDOWS»
если нод больше, то к каждой последующей после указания платформы пишу еще порт
насчет ошибок…есть неплохой блог о том ,Как запустить тесты на Selenium Grid используя RemoteWebDriver и Java. попробуйте там найти. мне оч помогло;)
http://qtp-help.blog…-webdriver.html
-
1
- Наверх
#6
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 25 апреля 2012 — 10:59
я запускаю Хаб, запускаю ноды сл строчкой «java -jar selenium-server-standalone-2.21.0.jar -role webdriver -hub http://localhost:4444/grid/register -browser browserName=firefox,maxInstances=5,platform=WINDOWS»
если нод больше, то к каждой последующей после указания платформы пишу еще портнасчет ошибок…есть неплохой блог о том ,Как запустить тесты на Selenium Grid используя RemoteWebDriver и Java. попробуйте там найти. мне оч помогло;)
http://qtp-help.blog…-webdriver.html
А TestNG может работать с C# ?
-
0
- Наверх
#7
ice-cream
ice-cream
-
- Members
-
- 12 сообщений
Новый участник
Отправлено 25 апреля 2012 — 12:28
[/quote]
А TestNG может работать с C# ?
[/quote]
не уверена.еще слабо в этом разбираюсь
в C# может NuGet подойдет.
здесь описание http://seleniumhq.org/download/
-
0
- Наверх
#8
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 25 апреля 2012 — 13:00
А TestNG может работать с C# ?
не уверена.еще слабо в этом разбираюсь
в C# может NuGet подойдет.
здесь описание http://seleniumhq.org/download/
Хорошо попробуем. Спасибо огромное за поддержку.
А для чего вообще используется TestNG ? Как я понял, он формирует xml файлик, который потом как то используется. Можете по подробнее объяснить, раз используете.
-
0
- Наверх
#9
ice-cream
ice-cream
-
- Members
-
- 12 сообщений
Новый участник
Отправлено 25 апреля 2012 — 15:13
Могу ошибаться, но кажется все выглядит сл. образом:
TEstNg -это тестовый фреймворк для запуска тестов (тот самый xml файликполучаем), разработанный на основе Junit и Nunit, только весьма усовершенствованный.
XML файлик используется для запуска теста.
У вас есть dll (C#) или java -class (Java), в котором описаны параметры теста (команды, какие браузеры запускать, что использовать WebDriver или RC). На оснофании этих файлов формируется xml.
главное в xml -это прописывается параллельный ли запуск тестов (4 конфигурации выбора) и количество потоков (думаю неограничено, разве что здравым смыслом). в нем указывается так же имя класса (или библиотек) ,которые тестятся, название браузера и пр. вид файла зависит от того, как и что вы используете.
На том, что я пробую осваивать…
Program — Selenium & Co (Webdriver, Grid)
Language — Java
IDE — Eclipse
FrameWork — TestNg
Тесты , которые запускаю при помощи Grid и TestNG имеют в @BeforeClass дополнительные строчки и @Parameter
Файлик xml по структуре похож на нижеприведенный:
<?xml version=»1.0″ encoding=»UTF-8″?>
<!DOCTYPE suite SYSTEM «http://testng.org/te…estng-1.0.dtd»> //DocTYpe information
<suite name=»Same TestCases on Different Browser» verbose=»3″ parallel=»tests» thread-count=»4″> //name of test suit, parallels property is Tests (pic. attachment)
<test name=»Test5″ preserve-order=»true»> //test name. name of each tests must be different
<parameter name=»browser» value=»firefox»/> //browser name
<classes>
<class name=»test.Third»/> // the name of class, witch has tests
</classes>
</test>
<test name=»Test6″ preserve-order=»true»> //same information
<parameter name=»browser» value=»firefox»/>
<classes>
<class name=»test.Third»/>
</classes>
</test>
<test name=»Test7″ preserve-order=»true»>
<parameter name=»browser» value=»chrome»/>
<classes>
<class name=»test.Third»/>
</classes>
</test>
<test name=»Test8″ preserve-order=»true»>
<parameter name=»browser» value=»chrome»/>
<classes>
<class name=»test.Third»/>
</classes>
</test> <!— Test —>
</suite> <!— Suite —>
Разьяснения к строкам:
здесь записан файл, в котором есть 4 потока, запуск тестов параллельный
4 теста с разными именами, но все тесты выполняются для одного класса -Third
и из 4 тестов 2 будут запускаться в хроме , а два будут идти в мозиле.
Распределение тестов по нодам (Selenium Grid) идет в зависимости от того, какие ноды у нас объяслены -тут масса вариантов.
-
0
- Наверх
#10
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 26 апреля 2012 — 05:15
То есть, весь тест который у меня был создан в виде Windos приложения, мне нужно переделать в dll?
ну то есть перенести весь код туда и использовать [TestFixture],[SetUp],[TearDown],[Test].
-
0
- Наверх
#11
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 26 апреля 2012 — 08:55
выяснил что NUnit может распаралеливать тесты используя PUnit. Кто нибудь пытался сделать связку с PUnit и Selenium Grid ?
-
0
- Наверх
#12
ice-cream
ice-cream
-
- Members
-
- 12 сообщений
Новый участник
Отправлено 26 апреля 2012 — 08:58
стоп. если речь идет о десктопном приложении то вам точно не Grid нужен.
Selenium-это тестирование в браузере т.е веб-приложения.
Setup в C# тоже самое, что BeforeClass в java
teardown совпадает- там прописываете, то что должно происходить после теста -обычно закрытие браузера.
test -сам тест , методы, которые выполняются
Textfxture — ну думаю что-то вроде параметров.
На сколько мне известно, при использовании C# с Nunit вы build ваш класс, в котором есть тест и дальше запускаете его с Nunit.
другой вопрос, как вы пишите тест: через Selenium IDE или ручками?
-
0
- Наверх
#13
Lemur
Lemur
- ФИО:Левиков Владимир Владимирович
Отправлено 26 апреля 2012 — 09:08
стоп. если речь идет о десктопном приложении то вам точно не Grid нужен.
Selenium-это тестирование в браузере т.е веб-приложения.Setup в C# тоже самое, что BeforeClass в java
teardown совпадает- там прописываете, то что должно происходить после теста -обычно закрытие браузера.
test -сам тест , методы, которые выполняются
Textfxture — ну думаю что-то вроде параметров.На сколько мне известно, при использовании C# с Nunit вы build ваш класс, в котором есть тест и дальше запускаете его с Nunit.
другой вопрос, как вы пишите тест: через Selenium IDE или ручками?
Я его писал полностью руками (Webdriver + c#). Я сейчас так и сделал(чтобы попробовать :)) и теперь пытаюсь понять как можно мои тесты распаралелить.
Вообщем в результате хотелось бы получить схему вроде показанную тут. Правда пока как то не очень получается. Попытаюсь использовать PUnit, но слабо себе представляю как это будет действовать.
-
0
- Наверх
#14
bearoff
bearoff
-
- Members
-
- 21 сообщений
Новый участник
- Город:Харьков
Отправлено 15 мая 2012 — 16:40
Вообщем в результате хотелось бы получить схему вроде показанную тут.
О, моя схема )
К сожалению, в C# — не подскажу ничего по распараллеливанию.
По предыдущим вопросам — думаю, вы уже разобрались, но, на всякий случай пару замечаний:
Я запустил хаб командой:java -jar selenium-server.jar -role hub.
Затем пытаюсь запустить RemoteWebDriver:
…
на последней строчке получаю ошибку:
Тут проблема в том, что Grid = Hub + Node(s). За собственно браузеры отвечает node, и пока у хаба нет node, он не может ничего предложить тестам («Empty pool of VM for setup»).
если нод больше, то к каждой последующей после указания платформы пишу еще порт
А зачем запускать несоклько нодов на одной машине? Если вы хотите обеспечить этим поддержку нескольких браузеров, вы их можете просто перечислить в аргументах одного нода или прописать в nodeconfig.json (рекомендую).
-
1
- Наверх
Question:
I m running the acceptance tests and facing the following errors in my system only, this is working fine inside my other team systems. I’m using a selenium webdriver inside my docker container, it was working fine on my PC as well but don’t know why suddenly it started throwing these errors.
Error stacktrace:
E selenium.common.exceptions.WebDriverException: Message: Error forwarding the new session Empty pool of VM for setup Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless, --no-sandbox, --disable-dev-shm-usage], extensions: [], prefs: {intl.accept_languages: en}}, javascriptEnabled: true, version: }
E Stacktrace:
E at org.openqa.grid.web.servlet.handler.RequestHandler.process (RequestHandler.java:118)
E at org.openqa.grid.web.servlet.DriverServlet.process (DriverServlet.java:85)
E at org.openqa.grid.web.servlet.DriverServlet.doPost (DriverServlet.java:69)
E at javax.servlet.http.HttpServlet.service (HttpServlet.java:707)
E at javax.servlet.http.HttpServlet.service (HttpServlet.java:790)
E at org.seleniumhq.jetty9.servlet.ServletHolder.handle (ServletHolder.java:865)
E at org.seleniumhq.jetty9.servlet.ServletHandler.doHandle (ServletHandler.java:535)
E at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle (ScopedHandler.java:146)
E at org.seleniumhq.jetty9.security.SecurityHandler.handle (SecurityHandler.java:548)
E at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle (HandlerWrapper.java:132)
E at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:257)
E at org.seleniumhq.jetty9.server.session.SessionHandler.doHandle (SessionHandler.java:1595)
E at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextHandle (ScopedHandler.java:255)
E at org.seleniumhq.jetty9.server.handler.ContextHandler.doHandle (ContextHandler.java:1340)
E at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope (ScopedHandler.java:203)
E at org.seleniumhq.jetty9.servlet.ServletHandler.doScope (ServletHandler.java:473)
E at org.seleniumhq.jetty9.server.session.SessionHandler.doScope (SessionHandler.java:1564)
E at org.seleniumhq.jetty9.server.handler.ScopedHandler.nextScope (ScopedHandler.java:201)
E at org.seleniumhq.jetty9.server.handler.ContextHandler.doScope (ContextHandler.java:1242)
E at org.seleniumhq.jetty9.server.handler.ScopedHandler.handle (ScopedHandler.java:144)
E at org.seleniumhq.jetty9.server.handler.HandlerWrapper.handle (HandlerWrapper.java:132)
E at org.seleniumhq.jetty9.server.Server.handle (Server.java:503)
E at org.seleniumhq.jetty9.server.HttpChannel.handle (HttpChannel.java:364)
E at org.seleniumhq.jetty9.server.HttpConnection.onFillable (HttpConnection.java:260)
E at org.seleniumhq.jetty9.io.AbstractConnection$ReadCallback.succeeded (AbstractConnection.java:305)
E at org.seleniumhq.jetty9.io.FillInterest.fillable (FillInterest.java:103)
E at org.seleniumhq.jetty9.io.ChannelEndPoint$2.run (ChannelEndPoint.java:118)
E at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.runTask (EatWhatYouKill.java:333)
E at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.doProduce (EatWhatYouKill.java:310)
E at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.tryProduce (EatWhatYouKill.java:168)
E at org.seleniumhq.jetty9.util.thread.strategy.EatWhatYouKill.run (EatWhatYouKill.java:126)
E at org.seleniumhq.jetty9.util.thread.ReservedThreadExecutor$ReservedThread.run (ReservedThreadExecutor.java:366)
E at org.seleniumhq.jetty9.util.thread.QueuedThreadPool.runJob (QueuedThreadPool.java:765)
E at org.seleniumhq.jetty9.util.thread.QueuedThreadPool$2.run (QueuedThreadPool.java:683)
E at java.lang.Thread.run (Thread.java:748)
/usr/lib/python3.8/site-packages/selenium/webdriver/remote/errorhandler.py:242: WebDriverException
Answer:
This error message…
selenium.common.exceptions.WebDriverException: Message: Error forwarding the new session Empty pool of VM for setup Capabilities {browserName: chrome, goog:chromeOptions: {args: [--headless, --no-sandbox, --disable-dev-shm-usage], extensions: [], prefs: {intl.accept_languages: en}}, javascriptEnabled: true, version: }
…implies that the ChromeDriver was unable to initiate/spawn a new Browsing Context i.e. google-chrome session and the version of the ChromeDriver can’t be detected possibly due to the incompatibility between the version of the binaries you are using.
Solution
Ensure that:
- Selenium is upgraded to current released Version 4.1.2.
- ChromeDriver is updated to current ChromeDriver v98.0 level.
- Chrome Browser is updated to current chrome=98 (as per chromedriver=98.0.4758.48 release notes).
References
You can find a couple of relevant detailed discussions in:
- WebDriverException: Error forwarding the new session Error forwarding the request Connect to my_ip:5555 [/my_ip] failed: Connection timed out
- System.InvalidOperationException : Error forwarding the new session cannot find : Capabilities {browserName: chrome, marionette: false}
If you have better answer, please add a comment about this, thank you!
Source: Stackoverflow.com