以百度搜索腾讯课堂为实例介绍Js处理滚动条
使用方法
selenium中使用execute_script方法执行js语句来实现滚动功能
语句
execute_script(“arguments[0].scrollIntoView();”,target)
其中target为find_element_by_xxx找到的元素对象
操作步骤
通过selenium的查找元素的方法先找到元素
通过执行js语句,讲元素滚动到可见区域
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from time import sleep
# 创建会话
driver = webdriver.Chrome()
# 打开网页
driver.get("https://www.baidu.com")
# 定位搜索框,写入内容
driver.find_element_by_id("kw").send_keys("腾讯课堂")
# 点击搜索按钮
driver.find_element_by_id("su").click()
# 等待元素存在
loc = (By.XPATH, '//a[text()="_百度百科"]')
# 使用显性等待
WebDriverWait(driver, 20).until(EC.visibility_of_element_located(loc))
# 找元素
ele = driver.find_element_by_xpath('//a[@title="版本迭代"]')
# 设置强制等待
sleep(3)
# 执行js语句滚动页面
driver.execute_script("arguments[0].scrollIntoView(false);", ele)