2013-12-08 8 views
5

Używając pytona i selenu muszę zlokalizować i kliknąć konkretny przycisk na stronie. W normalnych okolicznościach można to zrobić za pomocą poleceń, które nie będą działać w tym przypadku ze względu na kodowanie stron internetowych. Gdzie zarówno przycisk prowadzący do poprzedniej strony, jak i ten, który prowadzi do następnego, mają tę samą nazwę klasy. Tak więc ten kod tylko iść tam iz powrotem pomiędzy pierwszą i drugą stronępython, znajdowanie i klikanie konkretnego przycisku selenem

O ile mogę powiedzieć, że jedynym sposobem, aby powiedzieć dwa przyciski na boku, jest to, że przycisk prowadzący do poprzedniej strony leży w

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

i jeden, który prowadzi do następnej strony leży w

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

Czy istnieje jakiś sposób mający selen tylko wybrać i kliknąć przycisk, który leży w „następnej” klasy li?

Kompletny kod przycisk:

poprzedni przycisk:

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

następny przycisk:

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

Odpowiedz

3

myślę, że należy użyć .find_element_by_xpath(). Na przykład:

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

czyli

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

Nie mam doświadczenia z selenem i małym doświadczeniem w CSS, ale zobaczyłem prezentację na temat selenu, w którym stwierdzono, że używanie CSS jest ogólnie lepsze niż przy użyciu xpath. – dstromberg