Получение разницы в количестве "общего количества ссылок" на веб-странице с помощью средств разработки Selenium и браузера
Я написал код для подсчета общего количества ссылок на веб-странице. Я использовал JavascriptExecutor в селене того. Но проблема в том, что я получаю другое количество для команды Java Script link на общее количество ссылок в Selenium и в консоли браузера. Вот подробности тестирования:
Тестируемый веб-сайт: https://www.ebay.com/ Тест: общее количество ссылок на домашней странице Ebay.
Селен код и результат:
WebDriver driver = new ChromeDriver();
driver.get("https://www.ebay.com/");
driver.manage().timeouts().implicitlyWait(20l, TimeUnit.SECONDS);
JavascriptExecutor js = (JavascriptExecutor)driver;
System.out.println(js.executeScript(" return document.links.length"));
Результат: 422
Но когда я выполнил то же самое в консоли браузера, я получаю 440. введите описание изображения здесь
Я не могу понять разницу здесь. Пожалуйста, кто-нибудь, помогите мне понять
1 ответ
Было бы довольно сложно ответить на ваш вопрос, так как вы не упомянули, на какой консоли браузера вы выполняли JavaScript
команда:
document.links.length
Тем не менее Test Result
который вы наблюдаете через ChromeDriver
просто совпадает с моим быстрым результатом теста, который я наблюдаю через Chrome Development Console
т.е. точная цифра 422. Смотрите снимок ниже:
Однако стоит упомянуть, что IEDriverServer
а также GeckoDriver
оба совместимы с W3C и Google Chrome
а также PhantomJS
все еще будучи совместимым с OSS делает HTML DOM Tree
через разные протоколы и стандарты. Хотя разница в рендеринге DOM Tree Mechanism
может быть незначительным, но delta
разница в End Results
достаточно, чтобы потерпеть неудачу Validation
,
Следовательно, решением было бы всегда выбирать какой-либо один вариант (любой из IE
/ Firefox
/ Chrome
/ PhantomJS
) из WebDriver
/ Web Browser
комбинация для подтверждения Manual
а также Automated
Test Results
,