2013-12-08 94 views
5

使用python和selenium我需要找到並單擊網頁上的特定按鈕。雖然在正常情況下這可以用下面的命令python,找到並點擊一個具有硒的特定按鈕

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

不會在這種情況下工作要做,由於網頁編碼。通向前一頁的按鈕和通向下一頁的按鈕共享相同的類名稱。因此,這個代碼只會來回走在第一和第二頁

之間據我可以告訴告訴兩個按鈕分開的唯一途徑,是通往前一頁按鈕位於內

<li class="previous"> 
    #button 
</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_xpath("//a[text()='Next']") 
prev = driver.find_element_by_xpath("//a[text()='Previous']") 
+2

我沒有硒的經驗,也沒有什麼CSS經驗,但是我看到了關於硒的介紹,曾經有人說過,使用CSS通常比使用xpath更好。 – dstromberg