2013-12-08 16 views
5

pythonとセレンを使用すると、Webページ上の特定のボタンを見つけてクリックする必要があります。通常の状況下では、これはコマンドで行うことができます。python、セレンで特定のボタンを探してクリックする

next = driver.find_element_by_css_selector(".next") 
next.click() 

ウェブページがコーディングされているため、この場合は機能しません。前のページに続くボタンと次のページに続くボタンは同じクラス名を共有します。したがって、このコードは唯一の私の知る限り離れて二つのボタンを伝えるための唯一の方法を伝えることができるように、第1および第2のページの間で前後

を行く、前のページにつながるボタンは

<li class="previous"> 
    #button 
</li> 
内にあるということです

と次のページにつながる一つが唯一の「次」のliクラスにあるボタンを選択してクリックセレンを持っていることのいくつかの方法があります

<li class="next"> 
    #button 
</li> 

内にありますか?

完了ボタンコード:

前のボタン:

<li class="previous"> 
    <a class="next" rel="nofollow" onclick="qc.pA('nrForm', 'f76', 'QClickEvent', '1', 'f28'); return false;" href=""> 
     Previous 
    </a> 
</li> 

次のボタン:

<li class="next"> 
    <a class="next" rel="nofollow" onclick="qc.pA('nrForm', 'f76', 'QClickEvent', '3', 'f28'); return false;" href=""> 
     Next 
    </a> 
</li> 

答えて

3

私はあなたが.find_element_by_xpathを使うべきだと思います()。

next = driver.find_element_by_xpath("//li[@class='next']/a") 
prev = driver.find_element_by_xpath("//li[@class='previous']/a") 

か:たとえば

next = driver.find_element_by_css_selector('li.next>a') 

CSSセレクタは、クールで便利です::CSSセレクタで

next = driver.find_element_by_xpath("//a[text()='Next']") 
prev = driver.find_element_by_xpath("//a[text()='Previous']") 
+2

私はセレンの経験がなく、CSSの経験はほとんどありませんが、セレクションについてのプレゼンテーションは、CSSを使用する方が一般的にはxpathを使用するよりも優れていると言われました。 – dstromberg

関連する問題