webui-autotest:selenium

一.selenium

1.介绍

        Selenium(WEB自动化工具)是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

        这个工具的主要功能包括:(1)测试与浏览器的兼容性:测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。(2)测试系统功能:创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成.Net、JavaPerl等不同语言的测试脚本。

2.使用

(1)安装:

pip install Selenium

(2)导入包:

from selenium import webdriver

(3)初始化浏览器:

driver = webdriver.Chrome()    #谷歌浏览器
driver = webdriver.FireFox()    #火狐浏览器
driver = webdriver.Edge()    #IE Edge浏览器

(3)访问网页:

driver.get('url')

(4)设置页面大小:

#最大窗口
driver.maximize_window()

#自定义窗口大小:x,y是页面的宽高
driver.set_window_size(x,y)

(5)获取元素:

#获取页面标题
driver.title

#获取文本
driver.text
driver.find_element_by_id("s-usersetting-top").text

#获取浏览器名称
driver.name

#获取当前页面的url地址
driver.current_url

#获取输入框文本值
driver.find_element_by_name("wd").get_attribute("value")

(6)利用xpath定位元素:

        定位的方法有两种:① “/” 绝对路径,从页面的根元素开始;② “//” 相对路径,从页面上的任何节点开始匹配。

driver.findElement(By.xpath("//form[1]/input"))      //查找页面上第一个form元素内的直接子input元素(即只包括form元素的下一级input元素,使用绝对路径表示,单/号)

driver.findElement(By.xpath("//form[1]//input"))      //查找页面上第一个form元素内的所有子input元素(只要在form元素内的input都算,不管还嵌套了多少个其他标签,使用相对路径表示,双//号)

#绝对定位
#特点:1.以单斜杠/开头;2.从页面根元素(HTML标签)开始,严格按照元素在HTML页面中的位置和顺序向下查找
driver.find_element_by_xpath("/html/body/div[2]/div[1]/div/div[1]/div/form/span[1]/input")

#相对定位
#特点:1.以双斜杠//开头;2.不考虑元素在页面当中的绝对路径和位置;3.只考虑是否存在符合表达式的元素即可
driver.find_element_by_xpath("//*[@id='J_login_form']/dl/dt/input[@id='J_password']")
driver.find_element_by_xpath("//*[@id='J_login_form']/*/*/input[@id='J_password']")
driver.find_element_by_xpath("//*[@id='J_login_form']/*/*/input[2]”)

#部分属性匹配
a.starts-with: //input[starts-with(@id,'ctrl')]   //匹配以 ctrl开始的属性值
b.ends-with://input[ends-with(@id,'_userName')]   //匹配以 userName 结尾的属性值
c.contains()://input[contains(@id,'userName')]   //匹配含有 userName 属性值

#文本匹配
driver.find_element_by_xpath("//a[text(),"退出"]")    #文本全部匹配
driver.find_element_by_xpath("//a[contains(text(),"出")])    #文本部分匹配

(7)xpath与css

(8)用By.CSS_SELECTOR进行元素定位:元素定位之css selector(选择器定位)_BHY_的博客-CSDN博客_find_element_by_css_selector

(9)三种等待方式  (单位是sec)

①强制等待(sleep):

time.sleep(5) 

②隐式等待(implicitly_wait):

driver.implicitly_wait(10) 

        隐式等待是全局的是针对所有元素,设置等待时间如10秒,如果10秒内出现,则继续向下,否则抛异常。可以理解为在10秒以内,不停刷新看元素是否加载出来。 隐式等待只需要声明一次,一般在打开浏览器后进行声明。声明之后对整个drvier的生命周期都有效,后面不用重复声明。

③显示等待 ( expected_conditions)

from selenium.webdriver.support import expected_conditions as EC

added_status = WebDriverWait(self.driver,3).until(EC.visibility_of(self.driver.find_element(By.XPATH, "//*[contains(text(), '成功')]")))

        显示等待是单独针对某个元素,设置一个等待时间如5秒,每隔0.5秒检查一次是否出现,如果在5秒之前任何时候出现,则继续向下,一般需要配合该类的 until()until_not() 方法一起用,直到超过设置的最长时间,然后抛出超时错误 TimeoutException。

(9)断言(assert)

assert 1 == 2, '1不等于2'

        1不等于2,则断言错误,抛出AssertionError。‘1不等于2’为自定义的AssertionError报错内容——AssertionError:1不等于2。

参考链接:

Selenium3+python3自动化(二十五)--获取元素属性,driver.title,driver.text,driver.tag_name,get_attribut("属性名"),输入框文本值get_attribute("value"),driver.name - 走看看
​​​​​​selenium中的driver各类方法介绍_Live and learn的博客-CSDN博客_driver.get(url)用法

selenium 通过xpath进行元素定位--By.xpath() - 走看看

Selenium使用方法_wangxin083的博客-CSDN博客_selenium使用教程

全网最全python库selenium自动化使用教程_爬遍天下无敌手的博客-CSDN博客_自动化selenium教程
Selenium 三种等待方式(强制等待、隐式等待、显示等待) - 简书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值