2016-02-27 1 views
0

У меня есть вход A[1]='International Round', я пытаюсь найти A [1] в коде HTML и после получения значений 221.35 и -132.50 (будет сохранен в A [ 2] и A [3] соответственно). Я пробовал driver.find_element_by_xpath("//span[contains(@title, '%s' % A[1])]//*[contains(@class,'PR')]"), но не нашел элемент. Ниже приведен код HTML. Заранее благодарю за любую помощь!!.Python Selenium Получить элементы чуть выше моего ввода Переменная

<td>  
<td> 
<td> 
    <a id="ol-s-28647620-a" class="Results " href="javascript:$M('ol').onPoints('s',28647620,'a',221.35)"> 
    <span class="PR">221.35</span> 
    <span class="PM">-132.50</span> 
    <span class="PL" title="International Round">International Round</span> 
    </a> 
</td> 

ответ

1

// в xpath собирается дочерние элементы, а не братьев и сестер. В вашем случае используйте preceding-sibling

siblings = driver.find_elements_by_xpath("//span[contains(@title, '%s')]/preceding-sibling::span", % A[1]) 
A[2] = siblings[0].text 
A[3] = siblings[1].text 
+0

Спасибо, что так много, я много дней боролся с этим. Можете ли вы порекомендовать мне хорошую книгу или онлайн-материал для Selenium Python? – Johnny007

+0

Добро пожаловать :). Я не знаю никаких книг для Selenium, и я вообще не работаю с Python (я работаю с C# и Java). Я обнаружил, что лучший способ учиться - это застрять на чем-то и искать ответ;). @ Johnny007 – Guy

Смежные вопросы