2016-10-12 13 views
0

私はチケットを購入するための入力フィールドに値を送信することを含む私のテストケースに取り組んでいます。しかし、このケースでは、itemq_3728という名前の入力フィールドを見つけようとしているときに、セレニウムが要素エラーを見つけることができなくなりました。問題は、ページを再オープンするたびにページが入力フィールドの名前を変更してしまうことです。Selenium、Python。そのような要素はありません:ボタンがあるかどうか要素エラーを見つけることができません

どのように入力フィールドを見つけることができますか? 私はXPathを試みるが、目標を達成することはできませんし、また相対これはpageload後に名前の変更の数値のみパスを想定して助けることを願っています

<table id="bms_tickets" width="90%" cellspacing="5" cellpadding="0" class="bms_tickets table"> 
      <thead> 
       <tr> 
        <th>NAME</th> 
        <th width="240px">PRICE</th> 

        <th width="100px">QUANTITY</th> 

       </tr> 
      </thead> 
      <tbody id="resTypesTable"> 


<tr id="bms_restype_3728" class="bms_restype"> 
<td class="bms_restype_desc"> 
    Gen Ad 


    <div style="font-size:10px;margin-left:5px;"> 

    </div> 
</td>      
<td class="bms_restype_price"> 


      $10.00 
      <input type="hidden" name="pay_itemq_3728" value="10.00"> 



</td> 

<td class="bms_restype_qty">  

       <input type="text" name="itemq_3728" value="0" placeholder="1" min="1"> 
</td> 

</tr> 
      </tbody> 
      </table> 

答えて

0

チケットの名前にそれを書くことができませんでした: " //td[@class="bms_restype_qty"]//input[starts-­‐with(@name,"itemq")]'

0

あなたは以下のようにcssSelectorを使用して、それを見つけることができます: -

driver.find_element_by_css_selector("td.bms_restype_qty > input[type='text']") 

それとも、あなたができるxpathを使用して、この要素を見つけることが興味があるならそれは以下のようにGen Ad名欄のテキストをWRT見つける: -

driver.find_element_by_xpath(".//td[normalize-space(.)='Gen Ad' and @class = 'bms_restype_desc']/following-sibling::td[@class='bms_restype_qty']/input") 

それとも

driver.find_element_by_xpath(".//tr[td[normalize-space(.)='Gen Ad']]/td[@class='bms_restype_qty']/input") 
関連する問題