我正在尝试使用鼠标和滚动条来滚动网页。我正在探索除
以外的任何其他选择"driver.execute_script("window.scrollBy(0, 5000'))"
我确实尝试了Chrome动作之类的选项,但是似乎没有任何效果。 如果有人有任何解决方法,将需要一些指导。
答案 0 :(得分:1)
如果您的用例用于scroll()
window containing the DOM document,则除了使用以下Window Methods中的任何一个,没有其他更好的方法了:
如果您的用例用于scroll()
和Element,那么除了使用Element Method之外,没有其他更好的方法了:
您可以在What is the difference between the different scroll options?
中找到详细的讨论
但是,如果要避免execute_script()
与 WebElement 进行交互,则可以使用以下两(2)个其他选项:
使用move_to_element()中的selenium.webdriver.common.action_chains。此方法将自动 scroll Viewport中的元素。
示例代码:
menu = driver.find_element_by_css_selector(".nav")
hidden_submenu = driver.find_element_by_css_selector(".nav #submenu1")
ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform()
使用element_to_be_clickable()中的selenium.webdriver.support.expected_conditions。此 expected_conditions (预期条件)与selenium.webdriver.support.wait结合使用时,将自动 scroll Viewport中的元素。
示例代码:
WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.LINK_TEXT, "Cart"))).click()