为了练习,我正试图从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&sp=-1&pq=&sc=0-0&qs=n&sk=&cvid=A37699D61CB9427F836AB76C607801CD&first=7&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