selenium: 提供了操作浏览器页面的方法
python:调用/使用selenium 中的方法
浏览器:chrome firefox 最新版
浏览器驱动; chromedriver.exe geckdriver.exe
pip: python中的包管理工具
详细安装见《Python+selenium环境搭建步骤》
谷歌网址 http://chromedriver.storage.googleapis.com/index.html
定位方式(精确定位):find_element
1.ID
2.name
3.xpath 以谷歌浏览器获取的为准
4.css_selector 以火狐浏览器获取的为准
模糊定位(定位一组元素):find_elements
1.class
2.tag
绝对路径
/html/body/div[1]/div/div/div[2]/ul/li[2]/a
/html/body/div[1]/div/div/div[2]/ul/li[2]/a
相对路径,相对于@之后的属性
//*[@id="kw"]
1.元素定位优先选择id/name,次之用xpath,(如果以上3种都报错,则使用火狐 css_selector)
1.bro.find_element_by_id("contacts_name")
2.bro.find_element_by_name("submit")
3.bro.find_element_by_xpat
4.bro.find_element_by_css_selector("#role2") # 用火狐浏览器
2.下拉框 :1.直接选择下拉框中的选项。
2.先定位下拉框,再输入对应选项中的文字。
3.日期输入框,直接输入日期格式。
4. 定位到的元素,在一行中只能跟一个操作(send_keys/click)
5.使用send_keys输入中文时要加 u (.send_keys(u"门捷列夫"))
6.在使用xpath时出现了引号,使用反斜杠处理。
3. 控制浏览器
maximize_window() 窗口最大化
driver.set_window_size(480, 800) 设置窗口大小
back() 后退
forward 前进
quit() 关闭整个浏览器
close() 关闭当前窗口
# 截图
bro.get_screenshot_as_file('D:/python_work/auto_test0505/web_test/img/xinjiankehu.png')
通过js控制页面的显示元素
var q = document.getElementById("id").style.display = "block"
控制滚动条上下滚动
js="var q=document.documentElement.scrollTop=0" # 定义滚动条位置(0代表位置)
bro.execute_script(js) # 执行
控制滚动条左右滚动
js="var q=document.documentElement.scrollleft=0" #定义 (0代表位置)
bro.execute_script(js) #执行
----------------------------------------------------------------------------------
弹出窗口控制
bro.switch_to_alert().accept() # 在警告框中点击确定
bro.switch_to_alert().dismiss() # 在警告框中点击取消
text = bro.switch_to_alert().text # 获取警告框中的文本
time.localtime() 获取系统当前时间(年月日时分秒)
time.strftime() 将获取的时间转换为字符串格式
time.time() 获取时间(时分)
time.sleep() 强制程序休眠
切换窗口/页面框架
1.切换到指定窗口 driver.switch_to_window()
2.获取所有窗口标识 driver.window_haodles
3.切换到 弹出框 driver.switch_to_alert
4.切换网页框架 driver.switch_to_feame()
5.切换回原来的网页 driver.switch_to_default_content()
# # 在警告框中点击确定
bro.switch_to_alert().accept()
# # 在警告框中点击取消
bro.switch_to_alert().dismiss()
# # 获取警告框中的文本
text = bro.switch_to_alert().text
--------------------------------------------------------------------------------------------------------
上传文件方式1:send_keys() (输入文件路径)
上传文件方式2:使用autoIt 实现文件上传 os.system ()
#1. 相当于cmd的cd命令
os.chdir("D:\\python_work\\autoit")
#2. 相当于在cmd中执行命令
os.system("liti.exe")
切换网页框架:browser.switch_to_frame("iframe-dashboard")
sleep(2)
# 切换回原页面:browser.switch_to_default_content()
----------------------------------------------------------------------------------
调用包
from seleniumimport webdriver
from timeimport sleep# 增加休眠时间
import time
import os# 使脚本可以执行cmd命令
from selenium.webdriver.common.byimport By#导入使用By定位方式的包
from selenium.webdriver.support.uiimport WebDriverWait#导入显示等待需要的方法
from selenium.webdriver.supportimport expected_conditionsas EC
from selenium.webdriver.support.uiimport WebDriverWait
from selenium.webdriver.supportimport expected_conditionsas EC# s设置显示等待时间(2行)
---------------------------------------------------------------------------------
元素等待方式:
1.显示等待 使用By方式定位
2.sleep()休眠
unittest:单元测试框架
TestCase(测试用例):1.setUp()“初始化” 2.test_*():主要测试关注的内容 3.tearDown():清楚和退出的
TestSuit(测试环境)
Runner(执行器)