UI自动化测试Selenium—css与xpath有什么区别?

UI自动化测试

Selenium是非常优秀的WEB(UI)自动化测试框架

最新的版本是Selenium4.x。

Selenium支持主流的浏览器自动化测试,具体是Chrome,IE,Firefox等浏览器Selenium也是支持主流的开发语言,如Python,Java,Net,PHP

Selenium IDE

Selenium 1.0

WebDriver

Selenium=WevbDriver+Selenium

搭建:

1、安装Selenium的库,

pip3 install selenium

2、安装Chrome浏览器

https://www.google.cn/chrome/index.html

3、安装Chrome浏览器的驱动

A、查看Chrome浏览器版本

B、到淘宝源下载与浏览器版本匹配的Driver

https://registry.npmmirror.com/binary.html?path=chromedriver/

C、下载成功后,进行解压,并且是一管理员身份执行

D、把这个driver放到Python的安装目录下

from selenium import webdriver
import time

# 对webdrive进行实例化,指定测试的浏览器
driver=webdriver.Chrome()
# 导航到被测试的网址
driver.get('http://www.baidu.com')
time.sleep(3)
# 退出浏览器
driver.quit()
元素属性
import time

from selenium import webdriver
from selenium.webdriver.common.by import  By
'''
webdriver之所以能够操作浏览器,是因为它首先需要定位到被操作的元素属性,然后就可以对浏览器做各种操作。
元素定位的方法:
ID = "id"   ID是不能唯一的
XPATH = "xpath"
LINK_TEXT = "link text"
PARTIAL_LINK_TEXT = "partial link text"
NAME = "name"
TAG_NAME = "tag name"
CLASS_NAME = "class name"
CSS_SELECTOR = "css selector"
'''

# id元素属性
# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # send_keys()-->输入的意思
# driver.find_element_by_id('kw').send_keys("阿六君")
# time.sleep(3)
# driver.quit()

# name的元素属性
# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # send_keys()-->输入的意思
# driver.find_element_by_name('wd').send_keys("阿六君")
# time.sleep(3)
# driver.quit()


# class_name的元素属性

# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # send_keys()-->输入的意思
# driver.find_element_by_class_name('s_ipt').send_keys("阿六君")
# time.sleep(3)
# driver.quit()


'''
css和xpath:
当你使用id,name,class_name都定位不到时候,这个时候考虑使用css  or  xpath

'''
# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # send_keys()-->输入的意思
# driver.find_element_by_xpath('//*[@id="kw"]').send_keys("阿六君")
# time.sleep(3)
# driver.quit()


# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # send_keys()-->输入的意思
# driver.find_element_by_xpath('/html/body/div[1]/div[1]/div[5]/div/div/form/span[1]/input').send_keys("段舒元")
# time.sleep(3)
# driver.quit()

获取xpath方法

 

 

Xpath与 fullXpath性质一样


# css

# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # send_keys()-->输入的意思
# driver.find_element_by_css_selector('#kw').send_keys("段舒元")
# time.sleep(3)
# driver.quit()

获取css
获取css

css与xpath的区别

css选择 是依据页面的数据样式定位的, 有标签选择, 类选择, id选择, 或者他们的交并集, 除此之外没有其他的辅助元素了

xpath 是路径表达式,所有元素和内容都可以成为路径的一部分. 两种定位方式功能基本一致, 但是xpath明显更强大, 只是xpath写起来较复杂,css写起来容易些

'''
LINK_TEXT   :超链接
PARTIAL_LINK_TEXT:也是处理超链接,但是模糊搜索

'''
# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # click():点击
# driver.find_element_by_link_text('新闻').click()
# time.sleep(3)
# driver.quit()
#
# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # click():点击
# driver.find_element_by_partial_link_text('闻').click()
# time.sleep(3)
# driver.quit()



'''
元素定位的分类:
1、单个元素定位
2、多个元素定位,多个元素定位指的是元素的属性都一致,那么这个时候它返回的是列表,可以根据列表的索引来定位元素属性
3、不管是单个元素定位还是多个元素定位,它的方法都是8种,具体就是:



'''
# tagNmae
# driver=webdriver.Chrome()
# driver.get('http://www.baidu.com')
# # send_keys()-->输入的意思
# # driver.find_element_by_tag_name('input').send_keys("阿六君")
# tags=driver.find_elements_by_tag_name('input')
# # print(type(tags))
# # for item in tags:
# #     print(item)
# tags[7].send_keys('阿六君')
# time.sleep(3)
# driver.quit()

'''实战'''
# driver=webdriver.Chrome()
# driver.get('https://mail.sina.com.cn/')
# driver.find_element_by_id('freename').send_keys('alj')
# time.sleep(3)
# driver.find_element_by_id('freepassword').send_keys('987')
# time.sleep(3)
# driver.find_element_by_class_name('loginBtn').click()
# time.sleep(5)
# driver.quit()


'''获取测试的地址'''
# driver=webdriver.Chrome()
# driver.get('https://mail.sina.com.cn/')
# print(driver.current_url)
# # assert是Python原生的断言方法
# assert driver.current_url.endswith('sina.com.cn/')
# driver.quit()
#
'''获取当前页面代码'''
# driver=webdriver.Chrome()
# driver.get('https://mail.sina.com.cn/')
# print(driver.page_source)
# driver.quit()


'''获取页面的title'''

# driver=webdriver.Chrome()
# driver.get('https://mail.sina.com.cn/')
# print(driver.title)
# assert driver.title=='新浪邮箱'
# driver.quit()

'''页面的前进与后退'''
# driver=webdriver.Chrome()
# # 浏览器最大化
# driver.get('https://www.bing.com/')
# time.sleep(3)
# driver.get('http://www.baidu.com')
# time.sleep(3)
# # back 后退
# driver.back()
# print('当前地址:',driver.current_url)
# time.sleep(3)
# # forward 前进
# driver.forward()
# print('当前地址:',driver.current_url)
# time.sleep(3)
# driver.quit()


'''
多窗口解决问题思路:
1、先打开当前页面
2、然后获取当前页面放在一个变量中
3、打开新的页面
4、获取所有页面并且放在一个变量中
5、循环所有页面,判断如果不是当前页面,那么就是在新的页面

'''


# driver=webdriver.Chrome()
# # 浏览器最大化
# driver.maximize_window()
# driver.get('https://mail.sina.com.cn/')
# # 然后获取当前页面放在一个变量中
# nowHandle=driver.current_window_handle
# time.sleep(3)
# driver.find_element_by_link_text('注册').click()
# time.sleep(3)
# # 获取所有页面并且放在一个变量中
# allHandlers=driver.window_handles
# # 循环所有页面,判断如果不是当前页面,那么就是在新的页面
# for handler in allHandlers:
#     if handler!=nowHandle:
#         # 从当前页面切换到新的页面
#         driver.switch_to.window(handler)
#         driver.find_element_by_name('email').send_keys('aliujun')
#         time.sleep(5)
#         # 关闭浏览器
#         driver.close()
# # 切换到原来的页面
# driver.switch_to.window(nowHandle)
# time.sleep(5)
# driver.find_element_by_id('freename').send_keys('aliujun')
# time.sleep(5)
# driver.quit()



'''clear():清空'''
#
# driver=webdriver.Chrome()
# driver.maximize_window()
# driver.get('http://www.baidu.com')
# so=driver.find_element_by_id('kw')
# so.send_keys('阿六君')
# time.sleep(3)
# so.clear()
# time.sleep(3)
# driver.quit()


'''get_attribute()的方法是获取元素属性的值'''
driver=webdriver.Chrome()
driver.maximize_window()
driver.get('http://www.baidu.com')
so=driver.find_element_by_id('kw')
so.send_keys('阿六君')
time.sleep(3)
print(so.get_attribute('value'))
driver.quit()

最后:下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

软件测试面试小程序

被百万人刷爆的软件测试题库!!!谁用谁知道!!!全网最全面试刷题小程序,手机就可以刷题,地铁上公交上,卷起来!

涵盖以下这些面试题板块:

1、软件测试基础理论 ,2、web,app,接口功能测试 ,3、网络 ,4、数据库 ,5、linux

6、web,app,接口自动化 ,7、性能测试 ,8、编程基础,9、hr面试题 ,10、开放性测试题,11、安全测试,12、计算机基础

  全套资料获取方式:点击下方小卡片自行领取即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值