几天来,我一直在努力弄清楚如何点击分页类的页码。我尝试了很多方法,但我只能突出显示数字的容器,而不是真正点击它。
这是网站中分页的源代码:
<nav aria-label="pagination">
<ul class="pagination">
<li class="page-item false" data-page-number="<-">
<a class="page-link" id="page-link«" href="#">«</a>
</li>
<li class="page-item active" data-page-number="1">
<a class="page-link" id="page-link1" href="#">1</a>
</li>
<li class="page-item " data-page-number="2">
<a class="page-link" id="page-link2" href="#">2</a>
</li>
<li class="page-item " data-page-number="3">
<a class="page-link" id="page-link3" href="#">3</a>
</li>
<li class="page-item " data-page-number="4">
<a class="page-link" id="page-link4" href="#">4</a>
</li>
<li class="page-item " data-page-number="5">
<a class="page-link" id="page-link5" href="#">5</a>
</li>
<li class="page-item false" data-page-number="->">
<a class="page-link" id="page-link»" href="#">»</a>
</li>
</ul>
</nav>
这是我用来定位和单击页码的当前代码:
try:
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.CSS_SELECTOR, "ul.pagination")))
next_page_number = page_number + 1
driver.find_element(By.XPATH, f'//*[@id="page-link{next_page_number}"]').click()
time.sleep(2)
except NoSuchElementException or TimeoutException:
break
我也试着替换了。click()使用driver.execute_script("arguments[0].click();", page)
的不同执行方法,但它并没有更好地工作。driver.find_element(By.XPATH, f"//a[@href='#'][text()='{next_page_number}']").click()
-没有区别。driver.find_element(By.CSS_SELECTOR, "ul.pagination").find_element(By.LINK_TEXT, f"{next_page_number}").click()
- ;-;
我也试过用css选择器来查找这个号码,但是也没有用。我也尝试过用send_keys(Keys.ENTER)
代替click()
。
总的来说,我很失落,所以任何帮助或指导都将非常感激。
编辑:我正在查看的具体网站是https://www.xior-booking.com
1条答案
按热度按时间sgtfey8w1#
我已经更新了nextpage定位器,你要点击如下目标与链接元素
然后使用javscript click来单击链接
完整代码
点击第2页链接