前言
- 版本:
- python:3.9
- selenium:4.1.5
- 浏览器:firefox
创建浏览器对象
from selenium import webdriver driver = webdriver.Firefox(executable_path=r"C:\software\selenium\geckodriver.exe")
打开网页
# 打开在线网页 driver.get("https://www.baidu.com") # 打开离线网页 driver.get('file:///C:/File/index.html')
退出浏览器
# 关闭当前由selenium打开的浏览器窗口 driver.close() # 关闭所有由selenium打开的浏览器窗口 driver.quit()
设置窗口大小
# 窗口最大化 driver.maximize_window() # 网页全屏 driver.fullscreen_window() # 指定大小 driver.set_window_size(500,400)
设置窗口位置
# 指定横纵坐标 driver.set_window_position(x=500,y=400) # 同时指定坐标和大小 driver.set_window_rect(x=30,y=30,width=450,height=450)
获取窗口位置和大小
# 获取窗口位置 window_pos = driver.get_window_position() # 获取窗口大小 window_size = driver.get_window_size()
浏览器导航
- 返回到前一个页面
driver.back()
- 前进到下一个页面(如果没有返回,就没有前进)
driver.forward()
- 刷新
driver.refresh()
鼠标操作
- 假设惯用手是右手,单击指左键单击
# 左键单击 elem = driver.find_element(...).click() # 左键单击并按住 button = driver.find_element(...) webdriver.ActionChains(driver).click_and_hold(button).perform() # 右键单击 webdriver.ActionChains(driver).context_click(button).perform() # 左键双击 webdriver.ActionChains(driver).double_click(on_element=button).perform() # 移动光标但不点击 from selenium.webdriver.common.action_chains import ActionChains ActionChains(driver).move_to_element(button).perform() # 拖拽 src_elem = find_element(...) des_elem = find_element(...) ActionChains(driver).drag_and_drop(src_elem,des_elem).perform() # 松开点击。点按 -> 拖拽 -> 松开 ActionChains(driver)\ .click_and_hold(src_elem)\ .move_to_element(des_elem)\ .perform()\ .release()\ .perform()
键盘操作
# 上、下、输入 from selenium.webdriver.common.keys import Keys ActionChains(driver)\ .key_down(Keys.CONTROL)\ .send_keys("qwer")\ .key_up(Keys.CONTROL)\ .key_down(Keys.CONTROL)\ .send_keys("asdf")\ .key_up(Keys.CONTROL)\ .perform()