Обработка динамического щелчка изображения с помощью Selenium Webderiver - PullRequest
0 голосов
/ 26 июня 2018

Я работаю над функцией щелчка изображения, когда изображения динамически изменяются, но XPath остается неизменным.

Например:

Первый элемент проверки изображения:

<a id="adlink" target="_top" href="http://www.jimhayes.com/lennielw/index-2.html">
<img id="adimage" src="http://egranary/adverts/Images/lightwire.png" border="0"></a>

Первое изображение XPath:

//*[@id="adimage"]

Второй элемент проверки изображения:

<a id="adlink" target="_top" href="http://www.lifewater.ca/index.html">
<img id="adimage" src="http://egranary/adverts/Images/lifewater1.png" border="0"></a>

Второе изображение XPath:

//*[@id="adimage"]

В этом примере источник и цель постоянно меняются наперенаправить на определенную страницу при нажатии на изображение

Как справиться с этой ситуацией с помощью селена вебдрайвера?

1 Ответ

0 голосов
/ 26 июня 2018

Я думаю, что ваше требование состоит в том, чтобы в основном проверить, работают ли ссылки нормально - не сломаны.

В этом случае, я бы предложил вам следовать этому подходу - (Это на Java - вы можете сделать что-тоаналогично и на других языках)

Я пытаюсь извлечь все href на странице.Но если вам нужен конкретный xpath, просто измените его здесь.

driver.get("https://www.yahoo.com");

Map<Integer, List<String>> map = driver.findElements(By.xpath("//*[@href]")) 
                .stream()                             // find all elements which has href attribute & process one by one
                .map(ele -> ele.getAttribute("href")) // get the value of href
                .map(String::trim)                    // trim the text
                .distinct()                           // there could be duplicate links , so find unique
                .collect(Collectors.groupingBy(LinkUtil::getResponseCode)); // group the links based on the response code

Теперь мы можем получить доступ к URL-адресам на основе интересующего нас кода ответа.

map.get(200) // will contain all the good urls
map.get(403) // will contain all the 'Forbidden' urls   
map.get(404) // will contain all the 'Not Found' urls   
map.get(0) // will contain all the unknown host urls

Проверьте здесь для полной реализации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...