Я хочу использовать селеновую сетку, и это мой шаг:
- Запустите Selenium Grid Hub: java -jar selenium-server-standalone-3.141.59.jar -ro hub
- Запустить узел Selenium: java -jar selenium-server-standalone-3.141.59.jar -ro узел -hub http://localhost:4444/grid/register -браузер browserName = chrome
- Java-код:
public class TestGrid {
static WebDriver driver;
static String nodeUrl;
@Before
public void setup() throws MalformedURLException {
nodeUrl = "http://localhost:4444/wd/hub";
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setBrowserName("chrome");
capabilities.setPlatform(Platform.MAC);
driver = new RemoteWebDriver(new URL(nodeUrl), capabilities);
}
@Test
public void simpleTest() {
driver.get("https://www.edureka.co");
Assert.assertEquals("Instructor Led Online Courses with 24x7 On-Demand Support | Edureka",
driver.getTitle());
}
@After
public void afterTest() {
driver.quit();
}
}
Но когда я запустил это в IDE, я обнаружил, что тестовая часть никогда не появлялась и, казалось, на предыдущем шаге, просто застряла на последнем шаге:
driver = new RemoteWebDriver(new URL(nodeUrl), capabilities);
Я вижу только из консоли:
Oct 05, 2019 10:08:15 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
И в консоли концентратора selenim:
10:09:16.438 INFO [RequestHandler.process] - Got a request to create a new session: Capabilities {browserName: chrome, platform: MAC, version: }
10:09:16.443 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=952f43b8-f264-48b3-aa6f-eff6ff59b16e, seleniumProtocol=WebDriver, browserName=chrome, platformName=MAC, platform=MAC}
Тогда никогда не приходите на тестовую часть
Пожалуйста, помогите рассказать, что здесь происходит
Я использую Mac, поэтому chromedriver --version
дает:
ChromeDriver 77.0.3865.40 (f484704e052e0b556f8030b65b953dce96503217-refs/branch-heads/3865@{#442})
Я запускаю эту команду в той же папке, что и папка selenium-server-standaralon-3.141.jar И это ошибка для java junit:
org.openqa.selenium.SessionNotCreatedException: Невозможно создать новый удаленный сеанс. требуемые возможности = возможности [{browserName = chrome, версия =, платформа = MAC}], необходимые возможности = возможности [{}] Информация о сборке: версия: '3.0.1', версия: '1969d75', время: '2016-10-18 09:49:13 -0700 'Системная информация: хост:' Franks-MacBook-Pro.local ', ip:' 192.168.0.103 ', os.name:' Mac OS X ', os.arch:' x86_64 ', os.version: '10 .14.6 ', java.version:' 1.8.0_171 'Информация о драйвере: driver.version: RemoteWebDriver
Я следовал инструкциям, приведенным ниже, но при запуске java junit яполучено сообщение об ошибке из консоли концентратора сервера selenium:
Got a request to create a new session: Capabilities {browserName: chrome, platform: MAC}
10:30:12.334 INFO [TestSlot.getNewSession] - Trying to create a new session on test slot {server:CONFIG_UUID=4b8d38ff-8be6-4894-8c17-8fe334c7c3bc, seleniumProtocol=WebDriver, browserName=chrome, maxInstances=5, platformName=MAC, platform=MAC}
10:30:28.926 INFO [RequestHandler.process] - Error forwarding the new session Error forwarding the request Failed to connect to /10.1.3.246:14786
org.openqa.grid.internal.exception.NewSessionException: Error forwarding the request Failed to connect to /10.1.3.246:14786
at org.openqa.grid.web.servlet.handler.RequestHandler.forwardNewSessionRequestAndUpdateRegistry(RequestHandler.java:94)
at org.openqa.grid.web.servlet.handler.RequestHandler.process(RequestHandler.java:114)
at org.openqa.grid.web.servlet.Driver
Я увидел эту ошибку после того, как скопировал chromedriver в ту же папку, что и папка селена jar.
И в консоли Java я увидел это:
Oct 08, 2019 10:30:12 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Attempting bi-dialect session, assuming Postel's Law holds true on the remote end
Oct 08, 2019 10:31:28 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to original OSS JSON Wire Protocol.
Oct 08, 2019 10:32:44 AM org.openqa.selenium.remote.ProtocolHandshake createSession
INFO: Falling back to straight W3C remote end connection
org.openqa.selenium.SessionNotCreatedException: Unable to create new remote session. desired capabilities = Capabilities [{browserName=chrome, platform=MAC}], required capabilities = Capabilities [{}]
Build info: version: '3.0.1', revision: '1969d75', time: '2016-10-18 09:49:13 -0700'
System info: host: 'my.local', ip: '10.1.2.137', os.name: 'Mac OS X', os.arch: 'x86_64', os.version: '10.14.6', java.version: '1.8.0_171'
Driver info: driver.version: RemoteWebDriver
at org.openqa.selenium.remote.ProtocolHandshake.createSession(ProtocolHandshake.java:91)
at org.openqa.selenium.remote.HttpCommandExecutor.execute(HttpCommandExecutor.java:141)
at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:601)
at org.openqa.selenium.remote.RemoteWebDriver.startSession(RemoteWebDriver.java:241)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:128)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:155)
at com.datavisor.e2e.TestGrid.setup(TestGrid.java:41)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
может это проблема с версией?