selenium标签页切换
# 获取当前所有的标签页的句柄列表
list = driver.window_handles
# 根据标签页句柄列表索引下标进行切换
driver.switch_to.window(list[0])
对于特定的框架,需要切换到frame界面(例如QQ登录界面中,模拟点击登录)
# 定位到对应的frame标签
driver_frame = driver.find_element_by_xpath('xpath语法')
driver.switch_to.frame(driver_frame)
selenium cooking获取操作
# 获取当前标签页的全部cooking值
driver.get_cookies()
# 把cooking 转化为字典
dict = {cookie['name']: cooking['value'] for cookie in driver.get_cookies()}
selenium 滚动条操作(js执行)
x水平移动,y垂直移动
driver.execute_script('scrollTo(x,y)') # 一般x为0,一般不移动。
页面等待
强制页面等待(少用)
利用time库中的sleep方法
time.sleep(秒数) # 强制停留在当前页面秒数
隐式等待(常用)
一般会不断进行寻找元素,进行判断,当寻找到后进行下一步操作。
在设置时间内没有定位成功,则会报超时错误。
driver.implictly_wait(10) # 隐式等待10秒
对象配置(无头模式)
创建配置对象
opt = webdriver.ChromeOptions()
添加配置参数
设置浏览器为无头模式
opt.add_argument('--headless')
opt.add_argument('--disable-gpu')
更换ip代理(这里必须要重新启动浏览器)
opt.add_argument('--proxy-server=http://代理ip:端口')
更换头
opt.add_argument('--user-agent= 虫头 ')
创建浏览器对象添加配置对象
driver = webdriver.Chrome(chrome_options = opt)
driver.get(url)