python - selenium安装 到 使用
1. 安装 selenium
- pip install selenium
2.根据浏览器版本下载浏览器驱动
Chrome驱动下载
火狐浏览器
IE浏览器
driver.exe 下载好后放在 “环境变量” 内
或者 丢到python根目录 (python 已添加环境变量)
使用API:
以谷歌浏览器为例
导入
from selenium import webdriver
基本api:
driver = webdriver.Chrome()
# 如果打开失败这样试试 webdriver.Chrome(‘驱动路径’)
driver.get(url) # 请求网页
driver.current_url # 当前窗口url
driver.page_source # 网页源码
driver.close() # 关闭 当前浏览器窗口
driver.quit() # 关闭 控制的浏览器
options 设置
opts = webdriver.ChromeOptions()
opts.add_argument('--headless') # 设置隐藏
opts.add_argument('--disable-gpu') #谷歌文档提到需要加上这个属性来规避bug
opts.add_experimental_option('excludeSwitches', ['enable-automation']) # 规避检测
opts.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度
opts.add_argument('window-size=1920x3000') #指定浏览器分辨率
opts.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
opts.add_argument("--proxy-server=http://{}".format('223.199.19.200:9999')) # 设置代理ip
调用
driver = webdriver.Chrome(options=opts)
获取标签元素 改为 elements 匹配多个
- driver.find_element_by_xpath() # 通过Xpath查找
- driver.find_element_by_class_name() # 通过class属性查找
- driver.find_element_by_css_selector() # 通过css选择器查找 语法规则
- driver.find_element_by_id() # 通过id查找
- driver.find_element_by_link_text() # 通过链接文本查找
- driver.find_element_by_name() # 通过name属性进行查找
- driver.find_element_by_partial_link_text() # 通过链接文本的部分匹配查找
- driver.find_element_by_tag_name() # 通过标签名查找
获取属性(匹配到元素后)
- 标签元素.text # 元素内嵌文本
- 标签元素.get_attribute('属性名') # 获取元素属性
- 标签元素.screenshot('图片名路径') # 在元素标签截图并保存
窗口操作
- 打开新窗口(通过运行 js 代码实现)
- driver.execute_script('window.open("https://www.baidu.com");')
- driver.window_handles # 当前开启所有窗口句柄
- driver.current_window_handle # 当前窗口句柄
- driver.switch_to.window(窗口句柄) # 切换窗口句柄
alert 弹窗操作
- driver.switch_to_alert() # 返回当前弹窗对象
- 弹窗对象.dismiss() # 点击取消按钮
- 弹窗对象.accept() # 点击确定按钮
- 弹窗对象.text # 弹出显示文本
(frame)切换
- driver.switch_to.frame(frame标签对象) # 切到指定frame
- driver.switch_to.parent_frame() # 切到父级frame,如果已是主文档,则无效果, 相当于后退回去
- driver。switch_to_default_content() # 切换到主页面,DOM树最开始的frame
动作
- 标签.click() # 单击元素
- 标签.double_click() # 双击元素
- 标签.context_click() # 鼠标右键
- 输入标签.send_keys('文本') # 在输入框输入内容
- 输入标签.clear() # 清除输入框内容
动作链 ---------------------------------------------------------
导入路径
from selenium.webdriver.common.action_chains import ActionChains
- actions = ActionChains(driver) # 定义 动作链实例
API:
- actions.move_to_element_with_offset(标签元素, x, y) # 将鼠标移动到距某个元素多少距离的位置
- actions.move_by_offset(x, y) # 移动鼠标到指定的x,y位置
- actions.drag_and_drop_by_offset(标签对象, x, y) # 标签拖拽到某个坐标然后松开
- actions.drag_and_drop(标签元素1, 标签元素2) # 标签1 拖到 标签2
- actions.click_and_hold(on_element=None) # 左键按住不放
- actions.release(on_element=None) # 松开左键
- actions.context_click(on_element=None) # 单击
- actions.double_click(on_element=None) # 双击
- actions.context_click(on_element=None) # 右键
- actions.perform() # 执行 动作链
示例
ActionChains(driver).move_to_element_with_offset(标签元素, x, y).click().perform()
# 在某元素 指定坐标点击一次
这篇博客详细介绍了如何在Python中安装和使用selenium库。首先通过pip安装selenium,接着根据浏览器版本下载相应的驱动,如ChromeDriver,并设置环境变量。然后,展示了如何导入模块、设置选项并初始化Chrome浏览器的webdriver。还涵盖了获取元素、处理弹窗、切换frame以及使用动作链等核心API。

被折叠的 条评论
为什么被折叠?



