写在前面
最近在用python写抢票脚本,需要用到selenium控制滑动条,于是总结一下。
# 移动到元素element对象的“顶端”与当前窗口的“顶部”对齐
driver.execute_script("arguments[0].scrollIntoView();", element);
driver.execute_script("arguments[0].scrollIntoView(true);", element);
# 移动到元素element对象的“底端”与当前窗口的“底部”对齐
driver.execute_script("arguments[0].scrollIntoView(false);", element);
# 移动到页面最底部
driver.execute_script("window.scrollTo(0, document.body.scrollHeight)");
# 移动到指定的坐标(相对当前的坐标移动)
driver.execute_script("window.scrollBy(0, 700)");
# 结合上面的scrollBy语句,相当于移动到700+800=1600像素位置
driver.execute_script("window.scrollBy(0, 800)");
# 移动到窗口绝对位置坐标,如下移动到纵坐标1600像素位置
driver.execute_script("window.scrollTo(0, 1600)");
# 结合上面的scrollTo语句,仍然移动到纵坐标1200像素位置
driver.execute_script("window.scrollTo(0, 1200)");
项目代码
health_info = WebDriverWait(self.driver, 1, 0.1).until(
EC.presence_of_element_located((By.CLASS_NAME, 'health-info-content'))
)
print("---检测到温馨提示遮罩---")
health_info_box = health_info.find_element(by=By.ID, value='health-info-html-box')
# 模拟向上滑动,阅读温馨提示内容
print("---正在模拟向上滑动阅读温馨提示内容---")
self.driver.execute_script("arguments[0].scrollIntoView(false);", health_info_box);
大麦网抢票源代码:https://github.com/ZBIGBEAR/DamaiWang
参考
br>