Last active
December 26, 2015 07:09
-
-
Save shalakaPatil/7113594 to your computer and use it in GitHub Desktop.
Issue with starting clj-webdriver grid locally.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# | |
# Usage: grid-hub {start|stop} | |
# | |
source $(dirname $0)/util | |
EXPECTED_ARGS=1 | |
E_BADARGS=65 | |
DO_showUsage() { | |
echo "Usage: $(basename $0) {start|stop}" | |
exit $E_BADARGS | |
} | |
if [ $# -ne $EXPECTED_ARGS ]; then | |
DO_showUsage | |
fi | |
################################################################################ | |
WEBDRIVER_SERVER_JAR=/opt/selenium-server-standalone.jar | |
# API default is 4444, so for testing we'll use 3333 | |
WEBDRIVER_HUB_PARAMS="-role hub -port 3333" | |
WEBDRIVER_HUB_PIDFILE="/tmp/webdriver_hub.pid" | |
if [ ! -f $WEBDRIVER_SERVER_JAR ]; then | |
echo "You must place the Selenium-WebDriver standalone JAR file at ${WEBDRIVER_SERVER_JAR} before proceeding." | |
exit 1 | |
fi | |
case "$1" in | |
start) | |
echo "Starting Selenium-WebDriver Grid2 hub..." | |
if [ -f $WEBDRIVER_HUB_PIDFILE ]; then | |
echo "${FAIL_MSG} Selenium-WebDriver Grid2 hub already running with PID $(cat $WEBDRIVER_HUB_PIDFILE). Run 'grid-hub stop' or 'grid-hub restart'." | |
exit 1 | |
else | |
START_HUB_CMD="java -jar ${WEBDRIVER_SERVER_JAR} ${WEBDRIVER_HUB_PARAMS}" | |
$START_HUB_CMD & | |
PID=$! | |
echo $PID > "${WEBDRIVER_HUB_PIDFILE}" | |
echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 hub started successfully." | |
fi | |
;; | |
stop) | |
echo "Stopping Selenium-WebDriver Grid2 hub..." | |
if [ -f $WEBDRIVER_HUB_PIDFILE ]; then | |
PID=$(cat $WEBDRIVER_HUB_PIDFILE) | |
kill $PID | |
rm $WEBDRIVER_HUB_PIDFILE | |
sleep 1 | |
if [[ $(ps -A | egrep "^${PID}") ]]; then | |
echo "${FAIL_MSG} Tried to kill the hub with PID ${PID}, but was unsuccessful. You need to kill it with something stronger, like 'kill -9'" | |
exit 1 | |
else | |
echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 hub stopped successfully." | |
exit 0 | |
fi | |
else | |
echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 hub has already been stopped." | |
exit 0 | |
fi | |
;; | |
restart) | |
$0 stop | |
$0 start | |
;; | |
*) | |
DO_showUsage | |
esac |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
# | |
# Usage: grid-node {start|stop} | |
# | |
source $(dirname $0)/util | |
EXPECTED_ARGS=1 | |
E_BADARGS=65 | |
DO_showUsage() { | |
echo "Usage: $(basename $0) {start|stop}" | |
exit $E_BADARGS | |
} | |
if [ $# -ne $EXPECTED_ARGS ]; then | |
DO_showUsage | |
fi | |
################################################################################ | |
WEBDRIVER_SERVER_JAR=/opt/selenium-server-standalone.jar | |
# API default is 4444, so for testing we'll use 3333 | |
WEBDRIVER_NODE_PARAMS="-role node -hubHost 127.0.0.1 -hubPort 3333" | |
WEBDRIVER_NODE_PIDFILE="/tmp/webdriver_node.pid" | |
if [ ! -f $WEBDRIVER_SERVER_JAR ]; then | |
echo "You must place the Selenium-WebDriver standalone JAR file at ${WEBDRIVER_SERVER_JAR} before proceeding." | |
exit 1 | |
fi | |
case "$1" in | |
start) | |
echo "Starting Selenium-WebDriver Grid2 node..." | |
if [ -f $WEBDRIVER_NODE_PIDFILE ]; then | |
echo "${FAIL_MSG} Selenium-WebDriver Grid2 node already running with PID $(cat $WEBDRIVER_NODE_PIDFILE). Run 'grid-node stop' or 'grid-node restart'." | |
exit 1 | |
else | |
START_NODE_CMD="java -jar ${WEBDRIVER_SERVER_JAR} ${WEBDRIVER_NODE_PARAMS}" | |
$START_NODE_CMD & | |
PID=$! | |
echo $PID > "${WEBDRIVER_NODE_PIDFILE}" | |
echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 node started successfully." | |
fi | |
;; | |
stop) | |
echo "Stopping Selenium-WebDriver Grid2 node..." | |
if [ -f $WEBDRIVER_NODE_PIDFILE ]; then | |
PID=$(cat $WEBDRIVER_NODE_PIDFILE) | |
kill $PID | |
rm $WEBDRIVER_NODE_PIDFILE | |
sleep 1 | |
if [[ $(ps -A | egrep "^${PID}") ]]; then | |
echo "${FAIL_MSG} Tried to kill the node with PID ${PID}, but was unsuccessful. You need to kill it with something stronger, like 'kill -9'" | |
exit 1 | |
else | |
echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 node stopped successfully." | |
exit 0 | |
fi | |
else | |
echo "${SUCCESS_MSG} Selenium-WebDriver Grid2 node has already been stopped." | |
exit 0 | |
fi | |
;; | |
restart) | |
$0 stop | |
$0 start | |
;; | |
*) | |
DO_showUsage | |
esac |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(ns bugsbunny.core | |
(:require [clj-webdriver.taxi :refer :all] | |
[clj-webdriver.core :refer [key-code]] | |
[clj-webdriver.remote.server :refer [new-remote-session]] | |
[clojure.test :refer [run-tests]] | |
[calabash-clj.build.android :as android-build] | |
[calabash-clj.util :refer [run-sh]] | |
[bugsbunny.util.settings :refer [load-settings s>]]) | |
(:gen-class)) | |
(def ^:private browser-count (atom 0)) | |
(defonce mobile-runner nil) | |
(defn browser-up | |
"Start up a browser if it's not already started." | |
[] | |
(when (= 1 (swap! browser-count inc)) | |
(let [[a-server a-driver] (new-remote-session {:port 3333 | |
:host "127.0.0.1" | |
:existing true} | |
{:browser :firefox})] | |
(def grid-server a-server) | |
(def driver a-driver) | |
(set-driver! a-driver)) | |
(implicit-wait 1000))) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ bash grid-hub start | |
grid-hub: line 7: ./util: No such file or directory | |
Starting Selenium-WebDriver Grid2 hub... | |
Selenium-WebDriver Grid2 hub started successfully. | |
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ Oct 23, 2013 11:40:54 AM org.openqa.grid.selenium.GridLauncher main | |
INFO: Launching a selenium grid server | |
2013-10-23 11:40:59.639:INFO:osjs.Server:jetty-7.x.y-SNAPSHOT | |
2013-10-23 11:40:59.676:INFO:osjsh.ContextHandler:started o.s.j.s.ServletContextHandler{/,null} | |
2013-10-23 11:40:59.684:INFO:osjs.AbstractConnector:Started SocketConnector@0.0.0.0:3333 | |
Oct 23, 2013 11:46:56 AM org.openqa.grid.web.servlet.handler.RequestHandler process | |
INFO: Got a request to create a new session: {platform=ANY, browserName=firefox, version=} | |
Oct 23, 2013 11:46:56 AM org.openqa.grid.internal.ProxySet getNewSession | |
INFO: Available nodes: [host :http://192.168.254.165:5555 time out : 300000] | |
Oct 23, 2013 11:46:56 AM org.openqa.grid.internal.BaseRemoteProxy getNewSession | |
INFO: Trying to create a new session on node host :http://192.168.254.165:5555 time out : 300000 | |
Oct 23, 2013 11:46:56 AM org.openqa.grid.internal.TestSlot getNewSession | |
INFO: Trying to create a new session on test slot {seleniumProtocol=WebDriver, platform=MAC, browserName=firefox, maxInstances=5} | |
Oct 23, 2013 11:52:05 AM SessionCleanup | |
WARNING: session ext. key c0406c2e-c028-4c9f-b061-e939f5311682 has TIMED OUT due to client inactivity and will be released. | |
Oct 23, 2013 11:57:30 AM org.openqa.grid.web.servlet.handler.RequestHandler process | |
INFO: Got a request to create a new session: {platform=ANY, browserName=firefox, version=} | |
Oct 23, 2013 11:57:30 AM org.openqa.grid.internal.ProxySet getNewSession | |
INFO: Available nodes: [host :http://192.168.254.165:5555 time out : 300000] | |
Oct 23, 2013 11:57:30 AM org.openqa.grid.internal.BaseRemoteProxy getNewSession | |
INFO: Trying to create a new session on node host :http://192.168.254.165:5555 time out : 300000 | |
Oct 23, 2013 11:57:30 AM org.openqa.grid.internal.TestSlot getNewSession | |
INFO: Trying to create a new session on test slot {seleniumProtocol=WebDriver, platform=MAC, browserName=firefox, maxInstances=5} | |
Oct 23, 2013 11:58:05 AM org.openqa.grid.web.servlet.handler.RequestHandler process | |
INFO: Got a request to create a new session: {platform=ANY, browserName=firefox, version=} | |
Oct 23, 2013 11:58:05 AM org.openqa.grid.internal.ProxySet getNewSession | |
INFO: Available nodes: [host :http://192.168.254.165:5555 time out : 300000] | |
Oct 23, 2013 11:58:05 AM org.openqa.grid.internal.BaseRemoteProxy getNewSession | |
INFO: Trying to create a new session on node host :http://192.168.254.165:5555 time out : 300000 | |
Oct 23, 2013 11:58:05 AM org.openqa.grid.internal.TestSlot getNewSession | |
INFO: Trying to create a new session on test slot {seleniumProtocol=WebDriver, platform=MAC, browserName=firefox, maxInstances=5} | |
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ Oct 23, 2013 12:02:36 PM SessionCleanup | |
WARNING: session ext. key 39026bf9-6bb2-40c8-82b2-39f0599894c3 has TIMED OUT due to client inactivity and will be released. | |
Oct 23, 2013 12:03:11 PM SessionCleanup | |
WARNING: session ext. key cb9b714d-d8f8-4b64-9fc3-80d389e4cf95 has TIMED OUT due to client inactivity and will be released. | |
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ bash grid-node start | |
grid-node: line 7: ./util: No such file or directory | |
Starting Selenium-WebDriver Grid2 node... | |
Selenium-WebDriver Grid2 node started successfully. | |
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ Oct 23, 2013 11:41:15 AM org.openqa.grid.selenium.GridLauncher main | |
INFO: Launching a selenium grid node | |
11:41:25.663 INFO - Java: Apple Inc. 20.51-b01-457 | |
11:41:25.663 INFO - OS: Mac OS X 10.8.5 x86_64 | |
11:41:25.671 INFO - v2.37.0, with Core v2.37.0. Built from revision a7c61cb | |
11:41:25.715 INFO - Default driver org.openqa.selenium.ie.InternetExplorerDriver registration is skipped: registration capabilities Capabilities [{platform=WINDOWS, ensureClea$Session=true, browserName=internet explorer, version=}] does not match with current platform: MAC | |
11:41:25.740 INFO - RemoteWebDriver instances should connect to: http://127.0.0.1:5555/wd/hub | |
11:41:25.741 INFO - Version Jetty/5.1.x | |
11:41:25.742 INFO - Started HttpContext[/selenium-server/driver,/selenium-server/driver] | |
11:41:25.743 INFO - Started HttpContext[/selenium-server,/selenium-server] | |
11:41:25.743 INFO - Started HttpContext[/,/] | |
11:41:25.751 INFO - Started org.openqa.jetty.jetty.servlet.ServletHandler@19c5466b | |
11:41:25.751 INFO - Started HttpContext[/wd,/wd] | |
11:41:25.755 INFO - Started SocketListener on 0.0.0.0:5555 | |
11:41:25.755 INFO - Started org.openqa.jetty.jetty.Server@3c6210fb | |
11:41:25.756 INFO - using the json request : {"class":"org.openqa.grid.common.RegistrationRequest","capabilities":[{"platform":"MAC","seleniumProtocol":"Selenium","browserName$:"*firefox","maxInstances":5},{"platform":"MAC","seleniumProtocol":"Selenium","browserName":"*googlechrome","maxInstances":5},{"platform":"MAC","seleniumProtocol":"Selenium","$rowserName":"*iexplore","maxInstances":1},{"platform":"MAC","seleniumProtocol":"WebDriver","browserName":"firefox","maxInstances":5},{"platform":"MAC","seleniumProtocol":"WebD$iver","browserName":"chrome","maxInstances":5},{"platform":"MAC","seleniumProtocol":"WebDriver","browserName":"internet explorer","maxInstances":1}],"configuration":{"port":55$5,"register":true,"host":"192.168.254.165","proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy","maxSession":5,"role":"node","hubHost":"127.0.0.1","registerCycle":5000,$hubPort":3333,"url":"http://192.168.254.165:5555","remoteHost":"http://192.168.254.165:5555"}} | |
11:41:25.756 INFO - Starting auto register thread. Will try to register every 5000 ms. | |
11:41:25.757 INFO - Registering the node to hub :http://127.0.0.1:3333/grid/register | |
11:46:56.990 INFO - Executing: [new session: {platform=ANY, browserName=firefox, version=}] at URL: /session) | |
11:46:57.000 INFO - Creating a new session for Capabilities [{platform=ANY, browserName=firefox, version=}] | |
11:47:04.115 INFO - Done: /session | |
11:52:05.870 INFO - Executing: [delete session: c0406c2e-c028-4c9f-b061-e939f5311682] at URL: /session/c0406c2e-c028-4c9f-b061-e939f5311682) | |
11:52:05.942 INFO - Done: /session/c0406c2e-c028-4c9f-b061-e939f5311682 | |
11:57:30.977 INFO - Executing: [new session: {platform=ANY, browserName=firefox, version=}] at URL: /session) | |
11:57:30.977 INFO - Creating a new session for Capabilities [{platform=ANY, browserName=firefox, version=}] | |
11:57:32.503 INFO - Done: /session | |
11:58:05.360 INFO - Executing: [new session: {platform=ANY, browserName=firefox, version=}] at URL: /session) | |
11:58:05.361 INFO - Creating a new session for Capabilities [{platform=ANY, browserName=firefox, version=}] | |
11:58:06.825 INFO - Done: /session | |
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ 12:02:36.032 INFO - Executing: [delete session: 39026bf9-6bb2-40c8-82b2-39f0599894c3] at URL: /session/39026bf9-6bb2-40c8-82b2-39f0599894c3) | |
12:02:36.103 INFO - Done: /session/39026bf9-6bb2-40c8-82b2-39f0599894c3 | |
12:03:11.110 INFO - Executing: [delete session: cb9b714d-d8f8-4b64-9fc3-80d389e4cf95] at URL: /session/cb9b714d-d8f8-4b64-9fc3-80d389e4cf95) | |
12:03:11.185 INFO - Done: /session/cb9b714d-d8f8-4b64-9fc3-80d389e4cf95 | |
shalaka@Shalakas-MacBook-Pro.local:~/grid-bash-scripts $ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
lein test :only bugsbunny.moby-sections/edit-section | |
ERROR in (edit-section) (core_deftype.clj:541) | |
Uncaught exception, not in assertion. | |
expected: nil | |
actual: java.lang.IllegalArgumentException: No implementation of method: :windows of protocol: #'clj-webdriver.core/ITargetLocator found for class: clojure.lang.Var$Unbound | |
at clojure.core$_cache_protocol_fn.invoke (core_deftype.clj:541) | |
clj_webdriver.core$eval1909$fn__1947$G__1898__1952.invoke (core.clj:57) | |
clj_webdriver.taxi$windows.invoke (taxi.clj:453) | |
clj_webdriver.taxi$windows.invoke (taxi.clj:451) | |
bugsbunny.moby_sections/fn (moby_sections.clj:67) | |
clojure.test$test_var$fn__7145.invoke (test.clj:701) | |
clojure.test$test_var.invoke (test.clj:701) | |
clojure.test$test_all_vars$fn__7149$fn__7156.invoke (test.clj:717) | |
clojure.test$default_fixture.invoke (test.clj:671) | |
clojure.test$test_all_vars$fn__7149.invoke (test.clj:717) | |
clojure.test$default_fixture.invoke (test.clj:671) | |
clojure.test$test_all_vars.invoke (test.clj:713) | |
clojure.test$test_ns.invoke (test.clj:736) | |
clojure.core$map$fn__4207.invoke (core.clj:2487) | |
clojure.lang.LazySeq.sval (LazySeq.java:42) | |
clojure.lang.LazySeq.seq (LazySeq.java:60) | |
clojure.lang.Cons.next (Cons.java:39) | |
clojure.lang.RT.next (RT.java:598) | |
clojure.core$next.invoke (core.clj:64) | |
clojure.core$reduce1.invoke (core.clj:896) | |
clojure.core$reduce1.invoke (core.clj:887) | |
clojure.core$merge_with.doInvoke (core.clj:2702) | |
clojure.lang.RestFn.applyTo (RestFn.java:139) | |
clojure.core$apply.invoke (core.clj:619) | |
clojure.test$run_tests.doInvoke (test.clj:751) | |
clojure.lang.RestFn.applyTo (RestFn.java:137) | |
clojure.core$apply.invoke (core.clj:617) | |
user$eval107$fn__162$fn__193.invoke (NO_SOURCE_FILE:-1) | |
user$eval107$fn__162$fn__163.invoke (NO_SOURCE_FILE:0) | |
user$eval107$fn__162.invoke (NO_SOURCE_FILE:-1) | |
user$eval107.invoke (NO_SOURCE_FILE:0) | |
clojure.lang.Compiler.eval (Compiler.java:6619) | |
clojure.lang.Compiler.eval (Compiler.java:6609) | |
clojure.lang.Compiler.eval (Compiler.java:6582) | |
clojure.core$eval.invoke (core.clj:2852) | |
leiningen.core.eval/fn (eval.clj:284) | |
clojure.lang.MultiFn.invoke (MultiFn.java:231) | |
leiningen.core.eval$eval_in_project.invoke (eval.clj:306) | |
leiningen.test$test.doInvoke (test.clj:196) | |
clojure.lang.RestFn.invoke (RestFn.java:423) | |
clojure.lang.Var.invoke (Var.java:419) | |
clojure.lang.AFn.applyToHelper (AFn.java:163) | |
clojure.lang.Var.applyTo (Var.java:532) | |
clojure.core$apply.invoke (core.clj:619) | |
leiningen.core.main$resolve_task$fn__1269.doInvoke (main.clj:151) | |
clojure.lang.RestFn.applyTo (RestFn.java:139) | |
clojure.lang.AFunction$1.doInvoke (AFunction.java:29) | |
clojure.lang.RestFn.applyTo (RestFn.java:137) | |
clojure.core$apply.invoke (core.clj:619) | |
leiningen.core.main$apply_task.invoke (main.clj:192) | |
leiningen.core.main$resolve_and_apply.invoke (main.clj:196) | |
leiningen.core.main$_main$fn__1332.invoke (main.clj:265) | |
leiningen.core.main$_main.doInvoke (main.clj:252) | |
clojure.lang.RestFn.invoke (RestFn.java:421) | |
clojure.lang.Var.invoke (Var.java:419) | |
clojure.lang.AFn.applyToHelper (AFn.java:163) | |
clojure.lang.Var.applyTo (Var.java:532) | |
clojure.core$apply.invoke (core.clj:617) | |
clojure.main$main_opt.invoke (main.clj:335) | |
clojure.main$main.doInvoke (main.clj:440) | |
clojure.lang.RestFn.invoke (RestFn.java:457) | |
clojure.lang.Var.invoke (Var.java:427) | |
clojure.lang.AFn.applyToHelper (AFn.java:172) | |
clojure.lang.Var.applyTo (Var.java:532) | |
clojure.main.main (main.java:37) | |
Ran 15 tests containing 15 assertions. | |
0 failures, 15 errors. | |
Tests failed. | |
Suppressed exit |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defproject bugsbunny "0.1.0" | |
:description "clj-web-driver-boilerplate" | |
:license {:name "MIT License" | |
:url "https://github.com/greywolve/clj-webdriver-boilerplate/blob/master/LICENSE"} | |
:dependencies [[org.clojure/clojure "1.5.1"] | |
[com.draines/postal "1.11.0"] | |
[clj-webdriver "0.6.0" :exclusions [org.seleniumhq.selenium/selenium-server]] | |
[org.seleniumhq.selenium/selenium-server "2.35.0"] | |
[clj-http "0.7.7"] | |
[org.clojure/tools.logging "0.2.6"] | |
[org.clojure/data.json "0.2.3"]] | |
:test-selectors {:web :web | |
:android :android} | |
:eval-in :leiningen | |
:main bugsbunny.core) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment