使用python和selenium我需要找到并单击网页上的特定按钮。在正常情况下,这可以通过命令
完成next = driver.find_element_by_css_selector(".next")
next.click()
由于网页编码,在这种情况下不起作用。通向前一页的按钮和通向下一页的按钮共享相同的类名。因此,此代码仅在第一页和第二页之间来回传递
据我所知告诉两个按钮分开的唯一方法,是通往上一页的按钮位于
内<li class="previous">
#button
</li>
和导致下一页的那个位于
之内<li class="next">
#button
</li>
是否有某种方法只选择selenium并点击“下一个”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>
答案 0 :(得分: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']")
答案 1 :(得分:2)
使用CSS选择器:
next = driver.find_element_by_css_selector('li.next>a')
CSS选择器非常酷且有用:http://www.w3schools.com/cssref/css_selectors.asp
XPATH,不是那么多 - 它应该只作为最后的手段使用。