2015-09-09 2 views
2

У меня есть html-код с ссылками href. Некоторые из них являются следующие:Поиск ссылки href с использованием Selenium и java

<a href="#"> 

в то время как другие, как

<a href = "http://.....'>. 

Другими словами, для в XPath я не могу использовать //a[contains(@href,'#')] ни //a[contains(@href,'http')], потому что они взаимно исключают друг друга, и каждый из них будет работать только для определенные разные значения href. Я не могу найти универсальную строку.

Теперь, теоретически, href не должно быть пустым, поэтому, если бы я мог использовать что-то вроде //a[href not blank], это было бы хорошо. Или даже //a[has href attribute].

В любом случае, чтобы это сделать?

+0

Tony, перечитайте свой вопрос. Похоже, что он неполный и может использовать дополнительную информацию. – SunSparc

+0

@SunSparc это просто, что были проблемы с разметкой HTML - исправлено. – alecxe

ответ

1

Если вы хотите проверить a ссылки, чтобы иметь href атрибут:

driver.findElements(By.xpath("//a[@href]")); 
+0

спасибо. Я попробую, чтобы – Tony

0

Вы можете также проверить наличие конкретных случаев a тегов с помощью XPath или оператор:

driver.findElements(By.xpath("//a[@href='#' or starts-with(@href, 'http://')]") 

Это возвращает все теги привязки, которые имеют атрибут href, равный #, или атрибут href, который запускает wi th http://.

Это решение не так просто, как одно из @alecxe, но оно может дать вам больше гибкости при перемещении ваших движений вперед. Он также дает вам возможность «отфильтровывать» ненужные метки привязки. Например, это решение не будет возвращать теги привязки с атрибутом href, который является относительным путем, например href="path/to/another/webpage.html".

+0

мне не нужно «или» где-то там? – Tony

+0

Собственно, да, согласился. См. Мое редактирование. Можете сделать это с помощью '|' или 'or'. – gtlambert

0

Я бы использовал простой CSS-селектор, который ищет тег A, который имеет атрибут href.

List<WebElement> elements = driver.findElements(By.cssSelector("a[href]")); 
Смежные вопросы