【软件测试】Python自动化 selenium基础

UI自动化——selenium

  • 安装
    打开cmd命令行输入: pip install selenium
    下载浏览器的驱动程序(不同浏览器及版本有不同的驱动)Chrome驱动下载

基本操作

from selenium import webdriver
# 打开浏览器
driver=webdriver.Chrome()
# 打开指定页面
driver.get("http://www.baidu.com")
# 关闭浏览器
driver.quit()
方法/属性说明
maximize_window()最大化窗口
refresh()刷新
back()后退
forward()前进
close()关闭页面
current_url页面url
title页面标题
get_screenshot_as_file(path)截图保存

元素定位方法

  • 单个元素:find_element
    若页面有多个元素匹配,则返回第一个,若无匹配元素,则引发异常:NoSuchElementException
  • 多个元素:find_elements
    返回一个列表list,若无匹配元素,list则为空
from selenium.webdriver.common.by import By
driver.find_element_by_id('username')
driver.find_element('id','username')
driver.find_element(By.ID,'passwd')
定位方法说明
id
name
class name
tag name标签名定位
link text超链接文本定位
partial link text超链接部分文本定位
css selectorcss选择器定位
xpath路径定位,如 //[@name=‘wd’];//input[@id=‘kw’];//[text()=‘百度’];//[@css=‘test’]/…;//[@css=‘test’]/span[1];//*[contains(@id,‘w’)];//a[contains(text(),‘百度’)]

元素交互

# 输入密码
driver.find_element('id','passwd').send_keys("123456")
# 获取用户名文本
driver.find_element('id','username').text
# 获取标签的type属性值
driver.find_element('id','passwd').get_attribute('type')
方法/属性说明
send_keys(“text”)输入文本
clear()清空文本
click()单击
text获取元素中的文本
tag_name获取元素标签名
get_attribute(‘id’)获取元素标签属性值 如:id、type、class、value

下拉框元素操作

使用selenium提供的Select类

方法说明
select_by_visible_text(“text”)根据“可见文本”选择
select_by_value(“text”)根据“value属性”选择
select_by_index()根据索引(从0开始)选择
from selenium import webdriver
from selenium.webdriver.support.select import Select

driver=webdriver.Chrome()
# 定位下拉框元素
el=Select(driver.find_element('id','edu'))
el.select_by_visible_text('本科')
el.select_by_index(0) # 选择下拉列表第一个值

JS弹窗操作

# 切换到弹出的会话框上
dialog=driver.switch_to.alert
t=dialog.text # 获取会话框中的文本
dialog.accept() # 点击确认
dialog.dismiss() # 点击取消
dialog.send_keys("可输入的会话框")

切换框架

# 外部页面切换至内部框架
driver.switch_to.frame('框架id/name')
driver.switch_to.frame('index') # 页面第一个框架(索引为0)
# 内部构架切换至外部页面
driver.switch_to.default_content()
# 内部框架切换至父级框架
driver.switch_to_parent_frame()

切换窗口

# 当前浏览器驱动指向的窗口句柄
driver.current_window_handle
# 当前浏览器中所有窗口句柄
driver.window_handles
# 切换当前指向的句柄
driver.switch_to.window('窗口句柄')

三种等待

import time
from selenium.webdriver.support.wait import WebDriverWait
# 强制等待3s
time.sleep(3)
# 隐式等待5s,启动浏览器就设置,全局有效
driver.implicitly_wait(5) 
# 显示等待10s
el=WebDriverWait(driver,10,0.5).until(
	lambda _:driver.find_element('xpath','//*[@id='passwd']')
)

执行JS脚本

# 浏览器滚动条 450为垂直方向到顶部的距离
js='window.scrollTo(10,450)'
driver.execute_script(js)

ActionChains类

from selenium.webdriver.common.action_chains import ActionChains

chains=ActionChains(driver)
el=driver.find_element_by_id('username')
# 存储一系列操作步骤
chains.double_click(el) # 双击
chains.click_and_hold(el) # 点住元素不放
chains.move_to_element(el) # 移动鼠标到指定元素 
chains.release() # 释放鼠标
# 执行存储的操作
chains.perform()

Key类(特殊按键)

# 全选
driver.find_element('id','username').send_keys(Keys.CONTROL,'a')
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值