骑士注册 登录
Linux 中国◆开源社区 返回首页

longtou的个人空间 https://linux.cn/space/32657 [收藏] [复制] [分享] [RSS]

日志

基于selenium+unittest的自动化测试-浏览器控制

已有 124 次阅读2019-08-23 17:09 |个人分类:测试

窗口大小

from selenium import webdriver
# 选择使用的浏览器驱动,如果是chrome则为:webdriver.Chrome()
driver = webdriver.Firefox()
# 设置浏览器窗口最大化,设置任意大小driver.set_windows_size(1024,720)
driver.maximize_window()
driver.get("https://www.gistack.com")
driver.quit()

刷新页面

driver.refresh()

后退、前进

driver.back()
driver.forward()

基本元素操作

# 点击
driver.find_element_by_id('kw').click()
# 清除文本
driver.find_element_by_id('input').clear()
# 输入文本
driver.find_element_by_id('input').send_keys("admin")

基本元素属性

# 元素尺寸
driver.find_element_by_id('kw').size
# 元素文本,常用于获取页面文本
driver.find_element_by_id('kw').text
# 属性值
driver.find_element_by_id('kw').get_attribute(name)
# 是否可见,常用于判断前一步骤之后预期元素是否出现
driver.find_element_by_id('kw').is_displayed()

鼠标事件

from selenium.webdriver.common.action_chains import ActionChains
# 定位到要操作的元素
element_a = driver.find_element_by_id('ko')
# 右击
ActionChains(driver).context_click(element).perform()
# 悬停
ActionChains(driver).move_to_element(element).perform()
# 双击
ActionChains(driver).double_click(element).perform()
# 拖放
target = driver.find_element_by_id('kb')
ActionChains(driver).drag_and_drop(element,target).perform()

元素等待

显式等待

指定某个元素,在一定时间内每隔一段时间检测一次当前页面该元素是否存在,如果超过设置时间检测不到则抛出异常

from selenium.webdriver.common.by import BY
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
element_b = WebdriverWait(driver,5,0.5).until(EC.presence_of_element_located((By.ID,'kw')))
element_b.send_keys('selenium')
隐式等待

通过一定时长等待页面某元素加载完成,如果超出了设置的时长元素还为加载,则抛出NoSuchElementException异常

driver.implicitly_wait(10)
sleep等待

脚本在执行到某一位置时做固定时间的休眠等待

from time import sleep
sleep(2)

文件上传

import os
# 定位上次按钮
upload = driver.find_element_by_name("upload_file")
# 提交上川文件
upload.send_keys('d:\\license.txt')

Cookie操作

# 获取当前cookie
cookie = driver.get_cookies()
# 添加cookie信息
driver.add_cookie({'name':'key_xxx','id':'1292324245'})

调用JavaScript

js = "windows.scrollTo(100,450)"
driver.execute_script(js)

窗口截图

driver.get_screenshot_as_file("d:\\test\img.png")

关闭窗口

driver.quit()
返回顶部

分享到微信

打开微信,点击顶部的“╋”,
使用“扫一扫”将网页分享至微信。