自动化测试Python+Selenium(一)


链接: 参考

一、selenium基础

1、selenium简介

是一个用于测试网站的自动化测试工具,支持各种浏览器包括Chrome、Firefox、Safari等主流界面浏览器,同时也支持phantomJS无界面浏览器。

2、安装selenium

在Windows命令提示符(cmd)下输入

pip install selenium

3、安装浏览器驱动

如果想使用selenium驱动不同的浏览器,必须单独下载并设置不同的浏览器驱动。

我用的是Firefox浏览器驱动: geckodriver

4、配置浏览器驱动

(1)选择合适的驱动程序,下载完成后将其解压,打开解压之后的文件
(2)查找Python的安装目录,将准备好的geckodriver.exe文件放到这个目录下

二、selenium元素定位

1、8种定位方式

项目Value
find_element_by_id()通过元素id定位
find_element_by_name()通过元素name定位
find_element_by_xpath通过xpath表达式定位
find_element_by_class_name()通过类名定位
find_element_by_link_text()通过完整超链接定位
find_element_by_partial_link_text()通过部分链接定位
find_element_by_tag_name通过标签定位
find_element_by_css_selector()通过css选择器定位

2、定位的用法

假如我们有一个Web页面,通过前端工具(如,Firebug)查看到一个元素的属性是这样的。

<html>
  <head>
  <body link="#0000cc">
    <a id="result_logo" href="/" onmousedown="return c({'fm':'tab','tab':'logo'})">
    <form id="form" class="fm" name="f" action="/s">
      <span class="soutu-btn"></span>
        <input id="kw" class="s_ipt" name="wd" value="" maxlength="255" autocomplete="off">

我们的目的是要定位input标签的输入框。

通过id定位:

dr.find_element_by_id("kw")

通过name定位:

dr.find_element_by_name("wd")

通过class name定位:

dr.find_element_by_class_name("s_ipt")

通过tag name定位:

dr.find_element_by_tag_name("input")

通过xpath定位,xpath定位有N种写法,这里列几个常用写法:

dr.find_element_by_xpath("//*[@id='kw']")
dr.find_element_by_xpath("//*[@name='wd']")
dr.find_element_by_xpath("//input[@class='s_ipt']")

通过css定位,css定位有N种写法,这里列几个常用写法:

dr.find_element_by_css_selector("#kw")
dr.find_element_by_css_selector("[name=wd]")
dr.find_element_by_css_selector(".s_ipt")

三、WebDriver常用方法

1、点击和输入

方法
  • clear():清除文本
  • send_keys():模拟按键输入
  • click():单击元素
示例
from selenium import webdriver 	                        #导入Selenium WebDriver模块
driver = webdriver.Firefox()            	            #新建对象并启动浏览器
driver.get("https://www.baidu.com")                     #调用get方法打开一个网页  
driver.find_element_by_id("kw").clear()	                #通过clear方法来清理文本
driver.find_element_by_id("kw").send_keys("selenium")	#输入文本内容
driver.find_element_by_id("su").click()             	#进行单击操作

2、其他常用方法

  • size:返回元素的尺寸
  • text:获取元素的文本
  • get_attribute(name):获取属性值
  • is_displayed():设置该元素是否为用户可见
示例
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("https://www.baidu.com")
size = driver.find_element_by_id('kw').size
print(size)			#获取百度输入框的宽、高
text = driver.find_element_by_id("bottom_layer").text
print(text)			#获取百度底部的备案信息
attribute = driver.find_element_by_id("kw").get_attribute('type')
print(attribute)	#获取百度输入的type属性的值
result = driver.find_element_by_id("kw").is_displayed()
print(result)		#返回元素是否可见
driver.quit()
输出结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值