Как обрабатывать ссылки с пустыми целями в Selenium Web driver - PullRequest
0 голосов
/ 18 июня 2019

Я проверял наличие активных ссылок на странице, используя htttpurlconnection.

Я столкнулся с одной ситуацией.

Вы можете увидеть некоторые ссылки с target = "_ blank"

Я не хочу включать такие ссылки в связанный список. Я пытался исключить то же самое, используя свойство getattribute target. Но это не работает.

! https://imgur.com/0ilF2gL

List <WebElement> activelinks = new ArrayList<WebElement>();

for (int i=0;i<linkslist.size();i++) {

    system.out.println("link address of full links and images>>> " +  linkslist.get(i).getAttribute("href")); 

    if (linkslist.get(i).getAttribute("href")!=null && (linkslist.get(i).getAttribute("target")!="_blank" )) {
        activelinks.add(linkslist.get(i));
        System.out.println("active link " + 
        activelinks.get(i).getAttribute("href"));
    }
}

1 Ответ

2 голосов
/ 18 июня 2019

Самый простой вариант - выполнить фильтрацию на уровне XPath , если вы хотите сопоставить ссылки, которые:

  • имеют атрибут href

и

  • имеют атрибут target, не равный _blank

Вы можете сопоставить такие ссылки так же просто, как:

//a[@href and not(@target='_blank')]

СЧто касается вашего подхода, вы должны использовать String.equals () метод для сравнения, предлагаемый код будет:

List<WebElement> activeLinks = linkslist
        .stream()
        .filter(link -> link.getAttribute("href") != null)
        .filter(link -> !link.getAttribute("target").equals("_blank"))
        .collect(Collectors.toList());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...