2013-12-08 21 views
5

Piton ve selenyum kullanma Web sayfasındaki belirli bir düğmeyi bulup tıklatmam gerekiyor. Normal koşullar altında bu, web sayfası kodlaması nedeniyle bu durumda çalışmayacak olanpython, selenyum ile belirli bir düğmeyi bulma ve tıklatma

komutlarıyla yapılabilir. Bir önceki sayfaya giden ve her ikisi de bir sonraki sayfaya giden düğmenin aynı sınıf adını paylaştığı yer. Ben ayrı iki düğme anlatmak için tek yol söyleyebileceğimiz Böylece bu kod yalnızca Bildiğim kadarıyla ileri geri birinci ve ikinci sayfa

arasında gidecek, önceki sayfaya açan düğme

<li class="previous"> 
    #button 
</li> 
içinde yatıyor olmasıdır

ve sonraki sayfaya götürüyor biri

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

sahip olmanın bir yolu var mı içinde yatıyor selenyum sadece seçmek ve "sonraki" li sınıfında yatıyor butonuna tıklayın?

tam düğmesi kodu:

önceki düğmesi:

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

sonraki düğmesi:

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

cevap

3

Sana .find_element_by_xpath kullanmak gerektiğini düşünüyorum().

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

ya: Örneğin

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

CSS Seçiciler serin ve yararlıdır:: CSS seçicileri ile

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

Hiçbir selenyum deneyimim ve küçük CSS deneyimim yok, ancak CSS kullanmanın genellikle xpath kullanmaktan daha iyi olduğu söylenen selenyum hakkında bir sunum gördüm. – dstromberg

İlgili konular