Selenium 2 Grid - Зная, какой node ваш тест использует
Можно ли узнать, какой из node селен-селен-концентратор назначен вашему тесту? Моим тестам необходимо поговорить с другими службами на машине node, чтобы выполнить конфигурации, которые не поддерживаются селеном.
Марк
Ответ 1
Как правило, вы не должны полагаться на то, на каком компьютере работает ваш тест. Grid 2 предоставляет серию прослушивателей обратного вызова, которые можно реализовать для обеспечения конфигурации машины. Но если вы действительно хотите увидеть, что работает node, вы можете использовать один из вызовов API. Обе конечные точки можно найти на концентраторе:
Пока еще не задокументированы. Но если вы посмотрите на источник, то просто посмотреть, как они работают. Вы хотите посмотреть ProxyStatusServlet и TestSessionStatusServlet.
Ответ 2
String hub = "grid_server_host"; //IP or hostname of GRID
int port = 4444; // port no.
HttpHost host = new HttpHost(hub,port);
DefaultHttpClient client = new DefaultHttpClient();
String url = host + "/grid/api/testsession?session=";
URL session = new URL(url + ((RemoteWebDriver) webdriver).getSessionId());
BasicHttpEntityEnclosingRequest req;
req = new BasicHttpEntityEnclosingRequest("POST", session.toExternalForm());
org.apache.http.HttpResponse response = client.execute(host,req);
JSONObject object = new JSONObject(EntityUtils.toString(response.getEntity()));
String proxyID = (String) object.get("proxyId");
String node = (proxyID.split("//")[1].split(":")[0]);