Хотя мне до сих пор непонятно, нафига нужен RemoteWebDriver. По той же причине, что п. 1.
RemoteWebDriver+Grid в первую очередь нужен для масштабирования выполнения тестов в рамках одного браузера. Исходя из моего опыта, среднее время выполнения теста составляет 1-2 минуты. Т.е. уже при наборе тестов в количестве около сотни придется задуматься о параллелизации. Добавим сюда мульти[браузерное/серверное] тестирование и станет ясно, что альтернатив этой связке нету.
Например:
Имеем пять тестовых машин и набор тестов, которые идут в:
IE - 30 min
FF - 20 min
Chrome - 15 min
В случае "по-браузерного" запуска репорт будет получен через 30 минут. В случае использования грида - через 6 минут.
Не надо лезть ни в какие дебри.
Эмм, ну как же убедить что придется? Ну хотя бы потому, что в коде "косяков" вагон и маленькая тележка.
private void followLink(WebElement link) {
String href = link.getAttribute("href");
link.click();
// JavaScript $.click() doesn't take effect for <a href>
if (href != null) {
open(href);
}
}
open после click - это нормально?
protected void fireEvent(final String event) {
причем тут document.activeElement?
} catch (WebDriverException elementDoesNotExist) {
return false;
т.е. в случае краша браузера/не валидного локатора и прочих нештатных ситуаций exists будет послушно возвращать false, умалчивая о причинах, а всяческие wait'ы - ждать.
private static void waitUntilAlertDisappears() {
это дед-код - ничего он ждать не будет
ieCapabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
так делать очень плохо
By.xpath(".//*[contains(normalize-space(text()), \"" + elementText + "\")]")
не совсем корректный xpath
и т.д.
Ну, это вы загнули. Вы хотите сказать, что в вашем проекте чекбокс рисуется с помощью span и img сотней разных способов? Не верю.
Сотней - нет. С пяток вариантов насчитать могу.
А если так, то вам стоит поговорить с программерами, чтобы они сделали это как-нибудь попроще.
Угу. Они с радостью перелопатят весь код проекта, которому уже за пять лет перевалило, и попросят задание посложнее :)
Еще раз повторюсь все эти прокси, делегаты, инвокейшен хендлеры здесь никакой полезной работы не делают, а напротив все усложняют и запутывают. По сути весь код может вполне себе уместиться в пару тройку классов.