webdriver实战1

Selenium3 包括 Selenium IDE、Selenium Grid 和 WebDriver 三大模块,废话不多说,直接按流程走,今天这里主要使用 webDriver 实例操作。

selenium 安装

pip install selenium

通过 pycharm 安装 如下图:

webdriver实战1_第1张图片
具体的操作步骤就不再阐述,不熟悉的找度娘。

以下简单实例:

from selenium import webdriver
from time import sleep

# 引入 firefox 浏览器启动
driver = webdriver.Firefox()
driver.get("https://www.csdn.com")
sleep(5)
driver.quit()

对浏览器的常用控制方法

调用方法 具体说明
set_window_size() 设置浏览器的大小
get_window_size() 返回浏览器的大小
fullscreen_window() 设置浏览器全屏
minimize_window() 设置浏览器最小化
back() 控制浏览器后退
forward() 控制浏览器前进
refresh() 刷新当前页面

对页面元素的常用操作方法

调用方法 具体说明
click() 单击元素
clear() 清除文本
send_keys (value) 模拟按键输入
submit() 用于提交表单(“回车”操作)
size 返回元素的尺寸
text 获取元素的文本
get_attribute(name) 获取元素属性值
is_displayed() 设置该元素是否用户可见

在 WebDriver 中, 将这些关于鼠标操作的方法封装在 ActionChains 类提供。

ActionChains(driver)	构造ActionChains对象
context_click()			执行鼠标悬停操作
move_to_element(above)	右击
double_click()			双击
drag_and_drop()			拖动
move_to_element(above)	执行鼠标悬停操作
context_click()			用于模拟鼠标右键操作, 在调用时需要指定元素定位
perform()				执行所有 ActionChains 中存储的行为,可以理解成是对整个操作的提交动作

Selenium中的Key模块为我们提供了模拟键盘按键的方法,那就是send_keys()方法。

send_keys(Keys.BACK_SPACE)	删除键(BackSpace)
send_keys(Keys.SPACE)		空格键(Space)
send_keys(Keys.TAB)			制表键(Tab)
send_keys(Keys.ESCAPE)		回退键(Esc)
send_keys(Keys.ENTER)		回车键(Enter)
send_keys(Keys.CONTROL,‘a’)	全选(Ctrl+A)
send_keys(Keys.CONTROL,‘c’)	复制(Ctrl+C)
send_keys(Keys.CONTROL,‘x’)	剪切(Ctrl+X)
send_keys(Keys.CONTROL,‘v’)	粘贴(Ctrl+V)
send_keys(Keys.F1…Fn)		键盘 F1…Fn

获取断言信息

断言的本质是验证某个功能点或脚本行为是否符合预期,
python自带的assert语句,unittest框架的assert方法,甚至用try…except捕获异常来断言等。

Selenium	断言中的三个模式:assert 、verify、waitfor
assert :断言失败时,测试终止。
Verify :断言失败时,测试会继续执行,但会将错误信息写入日志。
Waitfor  用于等待某些条件变为真。可用于 AJAX 应用程序的测试。
  #如果该条件为真,他们将立即成功执行。如果该条件不为真,则将失败并暂停测试。直到超过当前所设定的超过时间。
一般跟setTimeout时间一起使用。

常用断言归纳

assertLocation:	(判断当前是在正确的页面)
assertTitle:		(检查当前页面的 title 是否正确)
assertValue:		(检查 input 的值, checkbox 或 radio,有值为”on”无为”off”)
assertSelected:	(检查 select 的下拉菜单中选中是否正确)
assertSelectedOptions:(检查下拉菜单中的选项的是否正确)
assertText:		(检查指定元素的文本)
assertTextPresent:	(检查在当前给用户显示的页面上是否有出现指定的文本)
assertTextNotPresent:(检查在当前给用户显示的页面上是否没有出现指定的文本)
assertAttribute:	(检查当前指定元素的属性的值)
assertTable:		(检查 table 里的某个 cell 中的值)
assertEditable:	(检查指定的 input 是否可以编辑)
assertNotEditable:	(检查指定的 input 是否不可以编辑)
assertAlert:		(检查是否有产生带指定 message 的 alert 对话框)

verifyTitle 		(检查预期的页面标题)
verifyTextPresent 	(验证预期的文本是否在页面上的某个位置)
verifyElementPresent(验证预期的UI元素,它的HTML标签的定义,是否在当前网页上)
verifyText			(核实预期的文本和相应的HTML标签是否都存在于页面上)
verifyTable			(验证表的预期内容)
waitForPageToLoad	(暂停执行,直到预期的新的页面加载)
waitForElementPresent (等待检验某元素的存在。为真时,则执行。)

以下为实例,可供参考:

#coding=utf-8
 
from selenium import webdriver
import time
from selenium.webdriver.common.keys  import  Keys
 
#打开狐火浏览器
driver = webdriver.Firefox()

#访问目标网址
driver.get("http://127.0.0.1:80/iwebshop")
driver.maximize_window()
 
#打印当前页面title
title = driver.title
print (title)
 
#打印当前页面 URL
now_url = driver.current_url
print (now_url)
 
#获得用户名
user = driver.find_element_by_name('').text
print (user)
 
if user = '':
    print ('login success!')
else:
    print ('login error')
 
driver.find_element_by_id('word').send_keys('ipadd')
 
#删除多输入的一个 d
driver.find_element_by_id('word').send_keys(Keys.BACK_SPACE )
#输入空格键+“教程”
driver.find_element_by_id('word').send_keys(Keys.SPACE)
driver.find_element_by_id('word').send_keys(u'教程')
#输入Ctrl+a
driver.find_element_by_id('word').send_keys(Keys.CONTROL,'a')
driver.find_element_by_id('word').send_keys(Keys.CONTROL,'x')
driver.find_element_by_id('word').send_keys(Keys.CONTROL,'v')
"""
send_keys(Keys.BACK_SPACE)  删除键(BackSpace)
send_keys(Keys.SPACE) 		空格键(Space)
send_keys(Keys.TAB) 		制表键(Tab)
send_keys(Keys.ESCAPE) 		回退键(Esc)
send_keys(Keys.ENTER) 		回车键(Enter)
send_keys(Keys.CONTROL, ‘a’) 全选(Ctrl+A)
send_keys(Keys.CONTROL, ‘c’) 复制(Ctrl+C)
send_keys(Keys.CONTROL, ‘x’) 剪切(Ctrl+X)
send_keys(Keys.CONTROL, ‘v’) 粘贴(Ctrl+V)
send_keys(Keys.F1) 	键盘 F1
send_keys(Keys.F12) 键盘 F12
"""
time.sleep(4)
driver.quit()

以上把常用的方法及其说明均已详细列出,对于项目操作中用到的其他方法会在后期继续更新,本文针对新手入门的同学供参阅。

你可能感兴趣的:(webdriver实战1)