如何使用selenium python从页数进入最后一页?

时间:2016-12-09 07:04:54

标签: python selenium webdriver

enter image description here

这是我的UI和HTML DOM的屏幕截图。

我想转到最后一页,我可以做的是多次按下下一个按钮,但我不知道应该按下多少时间,所以我不这么认为更好的方法。 你能否建议我使用selenium命令更好的方法。

我使用了这个命令(连续按下):

driver.find_element_by_xpath('html/body/div[2]/div/section[8]/div/div/div[3]/div/div[2]/table/tfoot/tr/td/div/ul/li[5]/a').click()

1 个答案:

答案 0 :(得分:1)

您可以使用try/except之类的:

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

while True:
    try:
         WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, '//li[not(@class="disabled")]/a[contains(text(), "Next")]'))).click()
    except TimeoutException:
        break

这应该允许您点击Next按钮直到最后一页(直到按钮被禁用)

P.S。您不应该使用绝对XPath,例如html/body/div[2] ... /div/ul/li[5]/a,因为它对DOM中的更改很敏感。使用目标元素的属性或其父/子节点来创建相对XPath