无法使用selenium识别可单击的元素

2024-09-24 00:28:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图从Bing.com上抓取搜索结果以供练习。我无法确定要单击以移动到下一页的正确按钮

该按钮位于li列表中,其中包含

<a class="sb_pagN sb_pagN_bp b_widePag sb_bp " title="Next page" href="/search?q=site%3alinkedin.com%2fin%2f+AND+%22Harvard-business-school%22+AND+%22MBA%22&amp;sp=-1&amp;pq=&amp;sc=0-0&amp;qs=n&amp;sk=&amp;cvid=A37699D61CB9427F836AB76C607801CD&amp;first=7&amp;FORM=PORE" h="ID=SERP,5423.1"><div class="sw_next">Next</div></a>

我无法使用类名甚至其他属性单击它


Tags: anddivcom列表li按钮classnext
1条回答
网友
1楼 · 发布于 2024-09-24 00:28:46

为什么是类名,为什么不是link_text

find_element_by_link_text('Next').click()

应该在下一个元素位于Selenium视图端口中时工作

我想你可能不得不向下滚动,因为下一步按钮总是在网页的末尾

如果需要,请按如下方式向下滚动:

driver.execute_script("var scrollingElement = (document.scrollingElement || document.body);scrollingElement.scrollTop = scrollingElement.scrollHeight;")

更新1:

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.bing.com/search?q=site%3Alinkedin.com%2Fin%2F+AND+%22Harvard-business-school%22+AND+%22MBA%22&form=QBLH&sp=-1&pq=&sc=0-0&qs=n&sk=&cvid=A37699D61CB9427F836AB76C607801CD")
wait = WebDriverWait(driver, 10)
driver.execute_script("var scrollingElement = (document.scrollingElement || document.body);scrollingElement.scrollTop = scrollingElement.scrollHeight;")
sleep(5)
wait.until(EC.element_to_be_clickable((By.XPATH, "//div[text()='Next']/.."))).click()

导入:

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

相关问题 更多 >