栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

selenium自动化模拟

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

selenium自动化模拟

selenium自动化模拟

文章目录
  • selenium自动化模拟
    • 常规操作
      • 引包
      • 加载驱动
      • 定位元素
      • 获取元素属性
      • 设置元素属性
      • 模拟点击
      • 模拟输入
      • 模拟输入清除
      • 获取当前url
      • 获取页面快照
      • 页面打开
      • 执行js脚本
    • 窗口控制
      • 子父框切换
      • 获取窗口处理器
      • 切换操作窗口(窗口跳转)
      • 获取当前操作窗口
      • 窗口关闭
      • 浏览器关闭
      • 页面前进后退
      • 弹窗处理
    • 页面加载等待
      • 导包
      • 等待元素加载
    • 鼠标模拟
      • 引包
      • 创建对象
      • 移动到元素
      • 双击
      • 单击
      • 单击并hold
      • 右键单击
      • 拖拽
    • Select操作
      • 导包
      • 创建对象
      • 选择
      • 遍历选项
      • 获取第一个被选择的选项
      • 撤销所以选项
    • Cookies
      • 获取cookies
      • 删除

常规操作 引包
from selenium import webdriver
加载驱动
#加载谷歌驱动
driver = webdriver.Chrome(os.path.join(path,driverName))
定位元素
#通过xpath定位
driver.find_element_by_xpath('xpath表达式')

#通过css选择器定位
driver.find_element_by_css_selector('.UserName')

#通过元素id定位
driver.find_element_by_id('id')
获取元素属性
element = driver.find_element_by_xpath('xpath表达式')
value = element.get_attribute("value")
设置元素属性
element.set_attribute("key","value")
模拟点击
#获取元素
item = driver.find_element_by_css_selector('#UserName')
#触发点击
item.click()
模拟输入
#获取元素
item = driver.find_element_by_css_selector('#UserName')
#触发点击
item.send_keys('输入内容')
模拟输入清除
# 清除输入框内容
driver.find_element_by_id("k").clear()
获取当前url
driver.current_url
获取页面快照
# 获取页面快照
driver.save_screenshot("webPage.png")
页面打开
# get方法会一直等到页面被完全加载,然后才会继续程序
driver.get("http://www.baidu.com/")
执行js脚本
driver.execute_script("window.close();")
窗口控制

控制当前驱动操作的window和frame

注意:点击按钮导致新页面打开,并不会自动切换驱动当前操作的window handler,在父frame中是无法直接操作子frame的元素,需要进行切换操作。

子父框切换
#切换子frame
iframe = driver.find_element_by_xpath('//*[@id="stop"]/iframe')
driver.switch_to.frame(iframe)

#切换父frame
driver.switch_to.parent_frame()
获取窗口处理器
#通过内部window_handles列表变量
driver.window_handles
#获取某一个处理器
driver.window_handles[0]
切换操作窗口(窗口跳转)
#通过窗口处理器进行跳转
driver.switch_to.window(driver.window_handles[0])
获取当前操作窗口
driver.current_window_handle
窗口关闭
#关闭当前窗口,最后一个会关闭浏览器
driver.close()
浏览器关闭
# 关闭浏览器
driver.quit()
页面前进后退
#回到前一页
driver.back()

#前进
driver.forward()
弹窗处理
#确定
driver.switch_to.alert.accept()
页面加载等待 导包
# ui模块里面的WebDriverWait类,用来循环等待
from selenium.webdriver.support.ui import WebDriverWait
#presence_of_element_located类,条件判断
from selenium.webdriver.support.expected_conditions import presence_of_element_located

from selenium.webdriver.common.by import By
等待元素加载
try:
    # 页面等待最多10秒,等待id="myElement"出现,超时抛出异常
    element = WebDriverWait(driver, 10).until(
        expected_conditions.presence_of_element_located((By.ID, "myElement"))
    )
鼠标模拟 引包
#导入ActionChains类
from selenium.webdriver import ActionChains
创建对象
action = ActionChains(driver)
移动到元素
#鼠标移动到元素
action.move_to_element(element).perform()
双击
#鼠标双击
action.move_to_element(element).double_click(element).perform()
单击
#鼠标单击
action.move_to_element(element).click(element).perform()
单击并hold
#鼠标单击并hold住
action.move_to_element(element).click_and_hold(element).perform()
右键单击
#右键单击
action.move_to_element(element).context_click(element).perform()
拖拽
#拖拽元素1到元素2
action.drag_and_drop(element1, element2).perform()
Select操作 导包
#导包方式一
from selenium.webdriver.support.ui import Select
#导包方式二
from selenium.webdriver.support.select import Select
创建对象
# 找到 name 的选项卡
select = Select(driver.find_element_by_id('id'))
选择
select.select_by_index(1)
select.select_by_value("0")
select.select_by_visible_text(u"选项")
遍历选项
for option in select.options:
    value = option.get_attribute("value")
获取第一个被选择的选项
select.first_selected_option
撤销所以选项
select.deselect_all()
Cookies 获取cookies
#返回可迭代对象
driver.get_cookies()
删除
# 通过名字
driver.delete_cookie("CookieName")

# 删除所有
driver.delete_all_cookies()

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/878868.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号