Selenium两大对象
WebDriver对象
- 页面跳转
- 截图
- 获取源码
- 执行js
- 最大化窗口
- 切换窗口
WebElement对象
- 输入
- 点击
- 获取内容
- 获取属性
- 改变样式
鼠标和键盘操作
鼠标
- 左键单击
- 右键单击
- 左键双击
- 右键双击
- 中键单击、双击
- 滚动
- 长按
- 拖动
按键:
- ASCII
- 功能键
- 编辑键
- 快捷键
快速上手
from selenium.webdriver import Edge
from selenium.webdriver.common.by import By
# 获取浏览器驱动(打开浏览器)
driver = Edge()
# 访问网页
driver.get('https://baidu.com')
# 窗口最大化
driver.maximize_window()
# 获取网页标题
print(driver.title)
# 获取网页url
print(driver.current_url)
# 获取网页截图
driver.get_screenshot_as_file('page.png') # 获取当前画面
# 获取网页源码
with open("page.html", 'w', encoding='utf-8') as f:
f.write(driver.page_source)
# 等待,直到函数返回True(最多等待30s)
WebDriverWait(driver, timeout=30).until(lambda x: driver.find_element('xpath', '//*[@id="kw"]'))
# 获取元素
input_element = driver.find_element(by=By.XPATH, value='//*[@id="kw"]')
button_element = driver.find_element(by=By.XPATH, value='//*[@id="su"]')
# 操作元素
input_element.send_keys('github') # 给元素发送文字
button_element.click() # 点击元素
button_element.screenshot('btn.png') # 获取元素的截图
print(button_element.text) # 获取元素的文本
print(button_element.rect) # 获取元素位置和大小
# 让程序暂停(阻塞)
input()
# 停止驱动并关闭浏览器
driver.quit()