WEB测试(一)

WEB测试

一、环境安装

1、安装selenium

命令行使用以下命令安装selenium:pip install -U selenium

2、安装chrome浏览器chrome和chromedriver下载

链接:https://pan.baidu.com/s/1eSct8LO 密码:xeca

3、chromedirver放在python的安装根目录下面即可

下载链接中,只提供了windows版本的chrome和chromedriver
其它操作系统需要另外下载:
chromedriver下载地址:http://npm.taobao.org/mirrors/chromedriver/

二、selenium的基本使用

1、导入selenium

from selenium import webdriver

2、启动谷歌浏览器,开启与浏览器之间的会话

// service_log_path="D:\\chromedriver_service.log"  日志保存的地址
driver=webdriver.Chrome(service_log_path="D:\\chromedriver_service.log") 

3、访问一个网页

driver.get("http://www.baidu.com")

4、窗口最大化

driver.maximize_window()

5、设置窗口的大小

driver.set_window_size()

6、回退上一页

driver.back()

7、回退下一页

driver.forward()

8、刷新

driver.refresh()

9、获取标题

print(driver.title)

10、获取网址

print(driver.current_url)

11、窗口的句柄

print(driver.current_window_handle)

12、结束会话

#关闭chrome,结束webdriver服务
driver.quit()

13、关闭当前窗口

driver.close()

三、webDriver元素定位的几种方式

(1) id                               (2) class_name                     (3) name									
(4) tag_name                         (5) link_text(只对链接有效)         (6) partial_link_text
(7) Xpath                            (8) css

定位方式分类—汇总
(1)id name class_name :为元素属性定位
(2)tag_name:为元素标签定位
(3)link_text 、 partial_link_text:为超链接定位(a标签定位)
(4)css:为css选择器定位

id 定位

前提:必须有id属性
id定位方法:find_element_by_id()

自动导包:方法名+ctrl+Alt+空格

id定位实现步骤分析

// (1) 导入selenium包
from selenium import webdriver
// (2)导入time包
from time import sleep
// (3)实例化谷歌浏览器
driver=webdriver.Chrome(service_log_path="D:\\chromedriver_service.log") 
// (4)打开注册百度
driver.get("dat01\\A.html")
   注意:
   		\:反斜杠为转义字符,所以必须为2个\\
   		或者:
   			url=r"day01\A.html"
   			被r修饰的字符串,字符串中的转义符不做转义使用
   			/: 斜杠 5/3
   			//:目录结构
// (5)调用id定位方式
var ele=driver.find_element_by_id("kw")
// (6)使用send_keys() 方法发送数据
ele.send_keys("hh")
// (7) 暂停3秒 
sleep(3)
// (8) 关闭浏览器
driver.quit()

name 定位

前提:元素有name属性来定位
name的定位方法:find_element_by_name()
name定位实现步骤分析 :参考id定位

class_name 定位

前提:元素有class属性来定位
class的定位方法:find_element_by_class_name()
class_name定位实现步骤分析 :参考id定位

tag_name 定位

tag_name的定位方法:find_element_by_tag_name()  返回符合条件的第一个标签
tag_name定位实现步骤分析 :参考id定位

tag_name 定位

tag_name的定位方法:find_element_by_tag_name()  返回符合条件的第一个标签
tag_name定位实现步骤分析 :参考id定位

link_text 定位

说明:link_text是专门用来定位超链接文本(标签)

link_text的定位方法:
	  (1) 方法:find_element_by_link_text()  返回符合条件的第一个标签
	  (2) 说明:需要传入a标签全部文本(访问新浪网站)
link_text 定位实现步骤分析 :参考id定位

click():为单击方法
如:driver.find_element_by_link_text(“访问 新浪 网站”).click()

partial_link_text()

说明:partial_link_text定位是对link_text定位的补充
      partial_link_text 为模糊匹配,link_text为全部匹配

      partial_link_text定位方法:
      (1) 方法:find_element_by_partial_link_text()
      (2) 说明:需要传入a标签局部文本能表达唯一性

      partial_link_text 定位实现步骤分析 :参考id定位

find_element[s]_by_xxx()

作用:(1) 查找定位所有符合条件的元素
      (2) 返回的定位元素格式为数组(列表)格式
说明:列表数据格式的读取需要指定下标(下标从0开始)

操作(tag_name)
使用tag_name获取第二个元素(密码框):
driver.find_elements_by_tag_name(“input”)[1].send_keys(“123456”)

Xpath()

1、什么是Xpath?

Xpath即为XML Path的简称,它是一种用来确定XML Path的简称,它是一种用来确定XML文档中某部分位置的语言
HTML可以看做是XML的一种实现,所以selenium用户可以使用这种强大的语言在web应用中定位元素
XML:是一种标记语言,用来数据的存储和传递,后缀.xml结尾
提示:Xpath为强大的语言,那是因为它有非常灵活的策略

2、Xpath的定位策略

(1) 路径——定位
	 绝对路径
 	 相对路径
(2) 利用元素属性——定位
(3) 层级与属性结合——定位
(4) 属性与逻辑结合——定位

3、Xpath定位方法

方法:driver.find_element_by_Xpath()
(1) 路径(绝对路径、相对路径)
	绝对路径:从最外层元素到指定元素之间所有经过元素层级      如:/html/body/div/p[2]
	
	相对路径:从第一个符合条件元素开始(一般配合属性来区分)   如://input[@id="userA"]
(2) 利用元素属性
    说明:快速定位元素,利用元素唯一属性
    示例:*[@id="userA"]
(3) 层级与属性结合
    说明:要找的元素没有属性,但是它的父级有
    示例://*[@id="telA" and @class="telA"]

Xpath延伸:
(1) *[text()==“xxx”] 文本内容是XXX的元素
(2) *[starts-with(@attribute,‘xxx’)] 属性以XXX开头的元素
(3) *[contains(@attribute,‘xxx’)] 属性中含有XXX的元素

css定位

css是一种语言,它是用来描述HTML和XML的元素显示样式
css语言书写的两个格式:
	(1) 写在HTML语言中