Нахождение выражения XPATH - PullRequest
1 голос
/ 09 января 2012

Для следующего html:

<tr>
    <td class="first">AUD</td>
    <td> 0.00 </td>
    <td> 1,305.01 </td>
    <td> 1,305.01 </td>
    <td> -65.20 </td>
    <td> 0.00 </td>
    <td> 0.00 </td>
    <td> 1,239.81 </td>
    <td class="fx-rate"> 0.98542 </td>
</tr>

Я пытаюсь получить значение для валютного курса, учитывая тип тока.Например, функция будет выглядеть примерно так: get_fx_rate(currency).Это выражение XPATH, которое у меня есть, но оно приводит к пустому элементу [].Что я здесь не так делаю и какое было бы правильное выражение?

"//td[@class='first']/text()[normalize-space()='AUD']/parent::td[@class='fx-rate']"

Ответы [ 2 ]

2 голосов
/ 09 января 2012

Используйте это:

//td[@class = 'first' and normalize-space() = 'AUD']/parent::tr/td[@class = 'fx-rate']

или более понятное:

//tr[td[@class="first1" and normalize-space()="AUD"]]/td[@class="fx-rate"]
0 голосов
/ 10 января 2012

Так мне удалось решить, используя частичные xpaths:

### get all the elements via xpath
currencies = driver.find_elements_by_xpath("//td[@class='first']")
fx_rates = driver.find_elements_by_xpath("//td[@class='fx-rate']")

### build a list and zip it to get the k,v pairs
fx_values = [fx.text for fx in fx_rates if fx.text]
currency_text = [currency.text for currency in currencies if currency.text]
zip(currency_text,fx_values)[1:]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...