ActionChains.scroll_to_element(element).perform()execute_script('el.scrollIntoView()') 作为 fallback 方案ActionChains(driver).scroll_to_element(el).perform() 或 JS 注入driver.execute_script("el.scrollIntoView()") 兜底element.is_displayed() 确认元素可见# 快速参考 from selenium.webdriver.common.action_chains import ActionChains target = driver.find_element(By.ID, "p8_target") # 方式 A:Selenium 4.2+ 原生 ActionChains(driver).scroll_to_element(target).perform() # 方式 B:兼容所有版本 driver.execute_script("arguments[0].scrollIntoView()", target)
p8_target 元素可见,断言结果区更新
操作步骤:
① 定位长列表内的目标元素 p8_target;
② 调用 ActionChains(driver).scroll_to_element(target).perform() 滚动,或用 execute_script("el.scrollIntoView()");
③ 断言 p8_result 包含「滚到目标」或 target.is_displayed() 为 True。
💡 提示:scroll_to_element(target) 让目标元素滚动到视口“底部可见”位置;scroll_by_amount(dx, dy) 则按指定偏移滚动。
# 练习 8 参考答案 · 滚动 from selenium.webdriver.common.by import By from selenium.webdriver.common.action_chains import ActionChains import time driver.get("https://autotest-505.pages.dev/mouse_op_practice.html") target = driver.find_element(By.ID, "p8_target") actions = ActionChains(driver) # 方式 A:Selenium 4.2+ 原生 API actions.scroll_to_element(target).perform() # 方式 B:JS 注入(所有版本通用) driver.execute_script("arguments[0].scrollIntoView()", target) assert "滚到目标" in driver.find_element(By.ID, "p8_result").text