这是我的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()
答案 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