java - Not able to implement selenium grid -
below code using pass browser, node , hub port launch browser , execute tests exception although able set selenium server. paste error below of code too. use mac book, selenium 3.4, firefox 55 , gecko 0.18.0
public synchronized webdriver setup(string browser, string nodeport, string hubport) throws malformedurlexception{ desiredcapabilities capabilities = new desiredcapabilities(); capabilities.setplatform(platform.mac); capabilities.setcapability(capabilitytype.browser_name, browser); capabilities.setcapability(forseleniumserver.proxying_everything, true); capabilities.setcapability(capabilitytype.accept_ssl_certs, true); capabilities.setcapability(capabilitytype.supports_alerts, true); capabilities.setcapability(capabilitytype.supports_javascript, true); if(browser.equals("firefox")) system.setproperty("webdriver.gecko.driver", system.getproperty("user.dir")+"//geckodriver//geckodriver"); else if(browser.equals("chrome")) system.setproperty("webdriver.chrome.driver", system.getproperty("user.dir")+"//chromedriver//chromedriver"); driver = new remotewebdriver(new url("http://localhost:"+nodeport+"/wd/hub"), capabilities); driver.get("https://www.bookbaby.com"); driver.manage().window().maximize(); driver.manage().timeouts().implicitlywait(15, timeunit.seconds); system.out.println(driver.tostring()); return driver; error is
org.openqa.selenium.webdriverexception: path driver executable must set webdriver.gecko.driver system property; more information, see https://github.com/mozilla/geckodriver. latest version can downloaded https://github.com/mozilla/geckodriver/releases command duration or timeout: 1.41 seconds build info: version: '3.4.0', revision: 'unknown', time: 'unknown' system info: host: 'refaques-macbook-pro.local', ip: '192.168.108.206', os.name: 'mac os x', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_144' driver info: driver.version: driver @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:62) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45) @ java.lang.reflect.constructor.newinstance(constructor.java:423) @ org.openqa.selenium.remote.errorhandler.createthrowable(errorhandler.java:215) @ org.openqa.selenium.remote.errorhandler.throwifresponsefailed(errorhandler.java:167) @ org.openqa.selenium.remote.jsonwireprotocolresponse.lambda$new$0(jsonwireprotocolresponse.java:53) @ org.openqa.selenium.remote.jsonwireprotocolresponse.lambda$getresponsefunction$2(jsonwireprotocolresponse.java:91) @ org.openqa.selenium.remote.protocolhandshake.lambda$createsession$22(protocolhandshake.java:365) @ java.util.stream.referencepipeline$3$1.accept(referencepipeline.java:193) @ java.util.spliterators$arrayspliterator.tryadvance(spliterators.java:958) @ java.util.stream.referencepipeline.foreachwithcancel(referencepipeline.java:126) @ java.util.stream.abstractpipeline.copyintowithcancel(abstractpipeline.java:498) @ java.util.stream.abstractpipeline.copyinto(abstractpipeline.java:485) @ java.util.stream.abstractpipeline.wrapandcopyinto(abstractpipeline.java:471) @ java.util.stream.findops$findop.evaluatesequential(findops.java:152) @ java.util.stream.abstractpipeline.evaluate(abstractpipeline.java:234) @ java.util.stream.referencepipeline.findfirst(referencepipeline.java:464) @ org.openqa.selenium.remote.protocolhandshake.createsession(protocolhandshake.java:368) @ org.openqa.selenium.remote.protocolhandshake.createsession(protocolhandshake.java:159) @ org.openqa.selenium.remote.httpcommandexecutor.execute(httpcommandexecutor.java:142) @ org.openqa.selenium.remote.remotewebdriver.execute(remotewebdriver.java:637) @ org.openqa.selenium.remote.remotewebdriver.startsession(remotewebdriver.java:250) @ org.openqa.selenium.remote.remotewebdriver.startsession(remotewebdriver.java:236) @ org.openqa.selenium.remote.remotewebdriver.(remotewebdriver.java:137) @ org.openqa.selenium.remote.remotewebdriver.(remotewebdriver.java:174) @ com.bookbaby.driver.driver.setup(driver.java:55) @ com.bookbaby.executor.runcukesbyfeatureforfirefox.setupclass(runcukesbyfeatureforfirefox.java:45) @ sun.reflect.nativemethodaccessorimpl.invoke0(native method) @ sun.reflect.nativemethodaccessorimpl.invoke(nativemethodaccessorimpl.java:62) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:498) @ org.testng.internal.methodinvocationhelper.invokemethod(methodinvocationhelper.java:86) @ org.testng.internal.invoker.invokeconfigurationmethod(invoker.java:514) @ org.testng.internal.invoker.invokeconfigurations(invoker.java:215) @ org.testng.internal.invoker.invokeconfigurations(invoker.java:142) @ org.testng.internal.testmethodworker.invokebeforeclassmethods(testmethodworker.java:178) @ org.testng.internal.testmethodworker.run(testmethodworker.java:108) @ org.testng.testrunner.privaterun(testrunner.java:782) @ org.testng.testrunner.run(testrunner.java:632) @ org.testng.suiterunner.runtest(suiterunner.java:366) @ org.testng.suiterunner.access$000(suiterunner.java:39) @ org.testng.suiterunner$suiteworker.run(suiterunner.java:400) @ org.testng.internal.thread.threadutil$2.call(threadutil.java:64) @ java.util.concurrent.futuretask.run(futuretask.java:266) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1149) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:624) @ java.lang.thread.run(thread.java:748) caused by: java.lang.illegalstateexception: path driver executable must set webdriver.gecko.driver system property; more information, see https://github.com/mozilla/geckodriver. latest version can downloaded https://github.com/mozilla/geckodriver/releases @ com.google.common.base.preconditions.checkstate(preconditions.java:738) @ org.openqa.selenium.remote.service.driverservice.findexecutable(driverservice.java:124) @ org.openqa.selenium.firefox.geckodriverservice.access$100(geckodriverservice.java:41) @ org.openqa.selenium.firefox.geckodriverservice$builder.finddefaultexecutable(geckodriverservice.java:115) @ org.openqa.selenium.remote.service.driverservice$builder.build(driverservice.java:330) @ org.openqa.selenium.firefox.firefoxdriver.toexecutor(firefoxdriver.java:207) @ org.openqa.selenium.firefox.firefoxdriver.(firefoxdriver.java:108) @ org.openqa.selenium.firefox.firefoxdriver.(firefoxdriver.java:137) @ sun.reflect.nativeconstructoraccessorimpl.newinstance0(native method) @ sun.reflect.nativeconstructoraccessorimpl.newinstance(nativeconstructoraccessorimpl.java:62) @ sun.reflect.delegatingconstructoraccessorimpl.newinstance(delegatingconstructoraccessorimpl.java:45) @ java.lang.reflect.constructor.newinstance(constructor.java:423) @ org.openqa.selenium.remote.server.firefoxdriverprovider.callconstructor(firefoxdriverprovider.java:81) @ org.openqa.selenium.remote.server.firefoxdriverprovider.newinstance(firefoxdriverprovider.java:63) @ org.openqa.selenium.remote.server.defaultdriverfactory.newinstance(defaultdriverfactory.java:60) @ org.openqa.selenium.remote.server.defaultsession$browsercreator.call(defaultsession.java:222) @ org.openqa.selenium.remote.server.defaultsession$browsercreator.call(defaultsession.java:209) @ java.util.concurrent.futuretask.run(futuretask.java:266) @ org.openqa.selenium.remote.server.defaultsession$1.run(defaultsession.java:176) ... 3 more
below log command prompt
13:25:14.249 info - selenium build info: version: '3.4.0', revision: 'unknown' 13:25:14.249 info - launching selenium grid node 2017-09-12 13:25:14.814:info::main: logging initialized @833ms org.seleniumhq.jetty9.util.log.stderrlog 13:25:14.864 info - driver provider org.openqa.selenium.ie.internetexplorerdriver registration skipped: registration capabilities capabilities [{ensurecleansession=true, browsername=internet explorer, version=, platform=windows}] not match current platform mac 13:25:14.864 info - driver provider org.openqa.selenium.edge.edgedriver registration skipped: registration capabilities capabilities [{browsername=microsoftedge, version=, platform=windows}] not match current platform mac 13:25:14.864 info - driver class not found: com.opera.core.systems.operadriver 13:25:14.864 info - driver provider com.opera.core.systems.operadriver registration skipped: unable create new instances on machine. 13:25:14.865 info - driver class not found: com.opera.core.systems.operadriver 13:25:14.865 info - driver provider com.opera.core.systems.operadriver not registered 2017-09-12 13:25:14.899:info:osjs.server:main: jetty-9.4.3.v20170317 2017-09-12 13:25:14.938:info:osjsh.contexthandler:main: started o.s.j.s.servletcontexthandler@e056f20{/,null,available} 2017-09-12 13:25:14.963:info:osjs.abstractconnector:main: started serverconnector@39529185{http/1.1,[http/1.1]}{0.0.0.0:5556} 2017-09-12 13:25:14.963:info:osjs.server:main: started @982ms 13:25:14.963 info - selenium grid node , ready register hub 13:25:14.983 info - starting auto registration thread. try register every 5000 ms. 13:25:14.983 info - registering node hub: http://localhost:4445/grid/register 13:25:15.044 info - node registered hub , ready use 13:25:20.205 info - sessioncleaner initialized insidebrowsertimeout 0 , clientgonetimeout 1800000 polling every 180000 13:26:11.724 info - executing: [new session: capabilities [{proxyeverything=true, acceptsslcerts=true, marionette=true, acceptinsecurecerts=true, browsername=firefox, javascriptenabled=true, handlesalerts=true, version=, platform=mac}]]) 13:26:11.738 info - creating new session capabilities [{proxyeverything=true, acceptsslcerts=true, marionette=true, acceptinsecurecerts=true, browsername=firefox, javascriptenabled=true, handlesalerts=true, version=, platform=mac}] 13:26:11.770 warn - exception thrown java.util.concurrent.executionexception: org.openqa.selenium.webdriverexception: java.lang.reflect.invocationtargetexception build info: version: '3.4.0', revision: 'unknown', time: 'unknown' system info: host: 'xxxxxx-macbook-pro.local', ip: '192.168.108.206', os.name: 'mac os x', os.arch: 'x86_64', os.version: '10.12.6', java.version: '1.8.0_144' driver info: driver.version: unknown 13:26:11.777 warn - exception: path driver executable must set webdriver.gecko.driver system property; more information, see https://github.com/mozilla/geckodriver. latest version can downloaded https://github.com/mozilla/geckodriver/releases
please set environment variable webdriver.gecko.driver in machine , value.
or can pass parameter webdriver.gecko.driver while starting hub or registering node. like
java -dwebdriver.gecko.driver="path gecko driver" {jar} -role node/hub
Comments
Post a Comment