2016-03-10 5 views
-1

Пробую разные комбинации: от find.element_by_xpath и by_id, и по какой-то причине я просто не могу выбрать первый переключатель из этого списка. Он говорит, что путь не найден.Нужна помощь в поиске XPATH - Python

Это код, и мне в основном нужен первый вход для выбора.

<li id="opc-shipping_method" class="section"> 
    <div class="step-title"> 
     <span class="number">4</span> 
     <h3>Shipping Method</h3> 
     <!--<a href="#">Edit</a>--> 
    </div> 
    <div id="checkout-step-shipping_method" class="step a-item" style="display:none;"> 
     <form id="co-shipping-method-form" action=""> 
<div id="checkout-shipping-method-load"> 



<dl class="sp-methods"> 

     <div class="method-option"> 
      <ul> 
                   <li> 

                 <label for="s_method_ups_65"> 


           <input name="shipping_method" type="radio" value="ups_65" id="s_method_ups_65" class="radio"/> 



                    UPS Saver                           <span class="price">€33.34</span>                 </label> 
               </li> 
                   <li> 

                 <label for="s_method_ups_07"> 


           <input name="shipping_method" type="radio" value="ups_07" id="s_method_ups_07" class="radio"/> 



                    UPS Express                           <span class="price">€35.42</span>                 </label> 
               </li> 
                   <li> 

                 <label for="s_method_ups_08"> 


           <input name="shipping_method" type="radio" value="ups_08" id="s_method_ups_08" class="radio"/> 



                    UPS Expedited                           <span class="price">€158.37</span>                 </label> 
               </li> 
                   <li> 

                 <label for="s_method_ups_54"> 


           <input name="shipping_method" type="radio" value="ups_54" id="s_method_ups_54" class="radio"/> 



                    UPS Worldwide Express PlusSM                           <span class="price">€226.73</span>                 </label> 
               </li> 
           </ul> 
     </div> 
     </dl> 
+0

Что XPath вы пробовали? – choroba

+0

Я попробовал ID, по xpath, аналогично тем, которые были размещены ниже. – Christian

ответ

1

Попробуйте

driver.find_elements_by_xpath('//input[@type="radio"]')[0] 

или

driver.find_element_by_id("s_method_ups_65") 

или

driver.find_element_by_xpath('//label[@for="s_method_ups_65"]/input') 
+0

Ни одна из этих работ не работает. Во-первых, ошибка TypeError: объект «WebElement» не поддерживает индексирование. И для других selenium.common.exceptions.NoSuchElementException: Сообщение: невозможно найти элемент: {"method": "xpath", "selector": "// label [@for = \" s_method_ups_65 \ "]/input"} – Christian

+0

@Christian, это потому, что вы пытаетесь 'find_element' вместо' find_elements' – Andersson

+0

@Christian, проверьте, не нужен ли нужный элемент в 'iframe' или нет – Andersson

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