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()