UI自动化selenium语法及案例

一、八种元素定位

进行web页面自动化测试,对页面上的元素进行定位和操作是核心,对页面元素的定位是进行自动化测试的基础。

可以用于定位的常用的元素属性:

  • id
  • name
  • class name
  • tag name
  • link text
  • partial link text
  • xpath
  • css selector

语法:

driver.find_element_by_name()——最常用,简单
driver.find_element_by_id()——最常用,简单
driver.find_element_by_class_name()
driver.find_element_by_tag_name()——最不靠谱
driver.find_element_by_link_text()——定位文字连接好用
driver.find_element_by_partial_link_text()——定位文字连接好用
driver.find_element_by_xpath()——最灵活,万能
driver.find_element_by_css_selector()

语法案例:

#通过class name定位
driver.find_element_by_class_name("s_ipt").send_keys(u"软件测试")
通过name定位
driver.find_element_by_name("wd").send_keys(u"软件测试")
#通过id定位
driver.find_element_by_id("kw").send_keys(u"软件测试")
#通过css定位
driver.find_element_by_css_selector("#kw").send_keys(u'软件')
#tag name定位
driver.find_element_by_tag_name("input").send_keys("selenium")
#超链接定位
driver.find_element_by_partial_link_text("百度").click()

#通过partial link text定位
#partial link text定位与link text的区别在于,partial link text定位时,只需要输入文字链接的部分内容即可完成定位
driver.find_element_by_partial_link_text("新闻").click()

#xpath定位(需要重新细说xpath方法)
driver.find_element_by_xpath("//input[@id='kw']").send_keys("selenium")
driver.find_element_by_xpath("//*[contains(text(),'商品选品')]").click().......................当前目录包含'商品选品'的元素(例如:a in b)
driver.find_element_by_xpath( "//*[text()='商品选品']" ).click()......................................等于商品选品的元素(例如:a==b)
driver.find_element_by.xpath("//input[@id='username' and @name='userID']"))........................使用关系运算符定位



二、常用函数

#实例化一个浏览器(Chrome谷歌,Firefox火狐)
driver = webdriver.Chrome()

#设置窗口大小 
driver.set_window_size(1920,1080)

#最大化窗口
driver.maximize_window()

#进行页面截屏 
driver.save_screenshot("./baidu.png")
#固定等待时间
time.sleep(3)

#推出浏览器
driver.quit()

vsend_keys():输入文字
clear():清除文字
click():点击按钮

#输入文字
driver.find_element_by_id("kw").send_keys(u"软件测试")
#清除文字
driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").click()

#打开网址
driver.get("http://m.mail.10086.cn")

#隐式等待,5秒钟内只要找到了元素就开始执行,5秒钟后未找到,就超时;
driver.implicitly_wait(5)

#切换窗口
driver.switch_to_window(driver.window_handles[1])

#前进
driver.forward() 

#后退
driver.back()

#打印当前url
print(driver.current_url)

三、案例

1.模拟百度搜索

# coding=utf-8
from selenium import webdriver
import time

#实例化一个浏览器
driver = webdriver.Chrome()
# driver = webdriver.PhantomJS()

#设置窗口大小
# driver.set_window_size(1920,1080)

#最大化窗口
driver.maximize_window()

#发送请求
driver.get("http://www.baidu.com")

#进行页面截屏
driver.save_screenshot("./baidu.png")

#元素定位的方法
driver.find_element_by_id("kw").send_keys("python")
driver.find_element_by_id("su").click()

# driver 获取html字符串
# print(driver.page_source) #浏览器中elements的内容

print(driver.current_url)

#driver获取cookie
# cookies = driver.get_cookies()
# print(cookies)
# print("*"*100)
# cookies = {i["name"]:i["value"] for i in cookies}
# print(cookies)

#退出浏览器
time.sleep(3)
driver.quit()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会飞的猪303

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值