ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

自动化测试-2.selenium驱动和unittest框架介绍

2022-05-30 21:32:27  阅读:236  来源: 互联网

标签:web name unittest 元素 selenium self 自动化 element find


前篇文章我们已经讲了unittest框架和selenium驱动的安装和介绍,这篇文章,主要是讲selenium日常的写法以及简单的操作

1.打开一个页面,用百度举例

import unittest
from selenium import webdriver
import time
from selenium.webdriver.common.by import By


class Test(unittest.TestCase):
def setUp(self) -> None:
#这一步的意思,打开谷歌浏览器,通过调用webdriver这个类下面的chrmoe()方法打开浏览器,如果是火狐浏览器,这里就改成火狐就行了
# 如果没有设置驱动的位置,这个括号里面就需要写驱动的文件路径,注意;C是大写
self.web = webdriver.Chrome()
#调用webdriver下面的get方法,意思打开网址,括号里面写打开的地址,比如这里打开百度
self.web.get('http://www.baidu.com')
#最大化浏览器
self.web.maximize_window()
#休眠3秒
time.sleep(3)
def test_1(self): #测试用例写法
#通过id去定位页面的元素,send_keys:定位到元素后输入的内容
#self.web.find_element_by_id("wd").send_keys("test")
#上面是selenium4以前的写法,现在已经不推荐了,要改成下面这种写法
self.web.find_element(By.ID,"kw").send_keys("test")
time.sleep(1)
self.web.find_element(By.ID,"su").click()
time.sleep(2)
def tearDown(self) -> None: #后置条件
#退出
self.web.quit()

if __name__ =="__main__":
#unitest.main()函数用来测试 类中以 test 开头的测试用例
unittest.main()
执行结果如下

2.常用写法

1.连接浏览器:这里用谷歌浏览器举例

web = webdriver.Chrome() #如果是火狐换成火狐就行了,webdriver.Firefor()即可

 2.打开网址

    web.get()  #括号里面输入要访问的地址

3.最大化浏览器

self.web.maximize_window()

4.元素定位

selenium自动化的原理,就是通过操作页面的元素来模拟手工的操作,所以,元素定位是我们必须要掌握的内容

selenium总共有8种元素定位,分别是是 id,name,tag(太阁)(元素标签定位),class(元素类型定位),xpath,css,link,link_text,常用的只有前面六种,所以这里只讲前面六种

id与name:id与name都是前端写页面所添加的唯一标识,通过id或者name就可以精准定位到我们要操作的元素,这里用百度举例

 

写法如下:

self.web.find_element_by_id("kw")
self.web.find_element_by_name("wd")
#上面是selenium4以前的写法,现在已经不推荐了,要改成下面这种写法
self.web.find_element(By.ID,"kw")
self.web.find_element(By.name,"wd")

 

class定位: class 属性就用来标志着元素 类型,通过元素的类型来找元素,这里还是用百度举例,可以看到这里有class

 

 写法如下:

  如下图

所有的植物元素都有个class属性 值为 plant。

所有的动物元素都有个class属性 值为 animal。 如果我们要选择 所有的 动物, 就可以使用方法 find_elements(By.CLASS_NAME,"") 注意element后面多了个s class定位: class 属性就用来标志着元素 类型,通过元素的类型来找元素 for i in c: print(i.text) 注意直接打印c是打印的全部内容,我们只要文本内容,所以通过 WebElement 对象的 text属性 可以获取该元素 在网页中的文本内容,打印出来就是狮子山羊老虎 注意:element和elements的区别? 使用find_element找的是符合条件的内容,如果没找到就会报错, 但是find_elements找的是所有符合的内容,如果没找到就会返回空列表,而不会报错

 tag定位:通过元素的标签进行定位,和class差不多

find_elements(By.TAG_NAME,"div"):这句话就是找到所有div标签相关的东西

for i in c: print(i.text) 打印所有的div相关的文本 # 根据 tag name 选择元素,返回的是 一个列表 # 里面 都是 tag 名为 div 的元素对应的 WebElement对象 elements = wd.find_elements(By.TAG_NAME,"div") # 取出列表中的每个 WebElement对象,打印出其text属性的值 # text属性就是该 WebElement对象对应的元素在网页中的文本内容 for element in elements: print(element.text) webelement对象选择元素:不仅 WebDriver对象有 选择元素 的方法, WebElement对象 也有选择元素的方法。WebElement对象 也可以调用 find_elements_by_xxx, find_element_by_xxx 之类的方法 WebDriver 对象 选择元素的范围是 整个 web页面, 而 WebElement 对象 选择元素的范围是 该元素的内部。 样式:span =a.find_element_by_id('container').find_elements_by_tag_name("") 

介于篇幅,xpath和css我们会在下章单独讲解,这章就到这里结束

 

 

 

 

标签:web,name,unittest,元素,selenium,self,自动化,element,find
来源: https://www.cnblogs.com/wanggang199612/p/16306430.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有