无法使用硒元素识别可点击元素



为了练习,我正试图从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>

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

为什么是类名,为什么不是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

最新更新