Как перебрать результаты Selenium RC поверх XPath напрямую? - PullRequest
0 голосов
/ 11 июня 2010

В настоящее время я прибегаю к тому, чтобы сначала выполнить get_xpath_count, а затем создать цикл, увеличивающий индексную переменную, которую я, в свою очередь, вставляю обратно в исходный xpath для выбора n-го результата ... очень неловко, без сомнения.

Есть ли какой-нибудь простой, прямой и элегантный способ итерации по результатам xpath?

Спасибо!

Ответы [ 3 ]

1 голос
/ 11 июня 2010

Ваш подход, вероятно, является самым простым способом достижения вашей цели, однако в Selenium 2 (WebDriver) он несколько более элегантен. Пример на Java ниже:

List<WebElement> links = driver.findElements(By.xpath("//a"));
for (WebElement link : links) {
    System.out.println(link.getText());
}

Это выведет текст ссылки для каждой ссылки на странице в консоль.

0 голосов
/ 11 июня 2010

Что я делаю, так это использую пакет HtmlAgility в c #, читаю в полном источнике и применяю xpath, который затем возвращает список узлов

Я могу перебрать.Вы даже можете попробовать использовать linq, если хотите.

Я ценю, что обходил стороной селен, но в то время это было удобно.

0 голосов
/ 11 июня 2010

Мы используем тот же подход. :)

Так что, если есть лучшее решение, я бы тоже хотел его увидеть ... Но я не думаю, что оно есть.

Увы, если вы достаточно хорошо прокомментируете материал, это не так уж плохо ...:)

...