软件测试之web自动化测试(selenium)

from selenium import webdriver
import time
from selenium.webdriver.support.select import Select
‘’’
url=‘http://www.baidu.com’

f=webdriver.Firefox()
f.get(url)
el1=f.find_element_by_link_text(‘设置’)
el1.click()
el2=f.find_element_by_css_selector(’.setpref’)
el2.click()
print(f.page_source)
el3=f.find_element_by_css_selector(’.se-setting-3 .nr’)
el3s=Select(el3)

#索引选择
el3s.select_by_index(0)
el3s.select_by_index(1)
el3s.select_by_index(2)

#值选择
el3s.select_by_value(‘50’)
el3s.select_by_value(‘20’)
el3s.select_by_value(‘10’)

#可显示值选择
el3s.select_by_visible_text(‘每页选择50条’)
el3s.select_by_visible_text(‘每页选择20条’)
el3s.select_by_visible_text(‘每页选择10条’)

#显示已选择的元素
el3s.all_selected_options
el3s.first_selected_option
el3s.is_multiple
el3s.options

#取消选择
el3s.deselect_by_index()
el3s.deselect_by_value()
el3s.deselect_by_visible_text()

#-------------------------------操作JS-----------------------------------------
#操作JS进行网页下拉
f=webdriver.Chrome()
f.get(‘https://wenku.baidu.com/’)
jsb=‘window.scrollTo(0,1000)’#x为水平位移,y为竖直位移
f.execute_script(jsb)
time.sleep(3)
jsb1=‘var q=document.documentElement.scrollTop=0’#scrollTop=x,距离顶端为x像素
f.execute_script(jsb1)

#-------------------------------等待-----------------------------------------
#浏览器等待:显示等待、隐式等待
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url=‘http://www.google.com’
f=webdriver.Chrome()
f.get(url)
#显示等待
#WebDriverWait(f,10,0.5).until(EC.presence_of_element_located((By.ID,‘lg’)))

#隐式等待
f.implicitly_wait(3)
f.quit()
f.quit()

#-------------------------------cookies使用-----------------------------------------
#使用方法:get_cookies | get_cookie(cookie_key) | add_cookie(cookie_dict)

delete_cookie(name) | delete_all_cookies()

f=webdriver.Chrome()
f.get(url)
#获取cookies
cookies=f.get_cookies()
print(cookies)
#删除cookies
f.delete_all_cookies()

cookies=f.get_cookies()
print(cookies)
f.quit()

#-------------------------------简单封装-----------------------------------------
#常见封装:1、开启关闭浏览器 2、定位操作 3、对元素基本操作
from selenium import webdriver
import time

class Comm(object):
# 初始化方法
def init(self):
# 创建浏览器对象
self.driver = webdriver.Chrome()
# 设置隐式等待
self.driver.implicitly_wait(5)
# 设置浏览器的最大化
self.driver.maximize_window()

def open_url(self,url):
    # 请求指定站点
    self.driver.get(url)
    time.sleep(3)

def locateElement(self, locate_type, value):
    # 判断定位方式并调用相关方法
    el = None
    if locate_type == 'id':
        el = self.driver.find_element_by_id(value)
    elif locate_type == 'name':
        el = self.driver.find_element_by_name(value)
    elif locate_type == 'class':
        el = self.driver.find_element_by_class_name(value)
    elif locate_type == 'text':
        el = self.driver.find_element_by_link_text(value)
    elif locate_type == 'xpath':
        el = self.driver.find_element_by_xpath(value)
    elif locate_type == 'css':
        el = self.driver.find_element_by_css_selector(value)
    # 如果el不为None,则返回
    if el is not None:
        return el

# 指定对某一元素的点击操作
def click(self, locate_type, value):
    # 调用定位方法进行元素定位
    el = self.locateElement(locate_type,value)
    # 执行点击操作
    el.click()
    time.sleep(1)

# 对指定的元素进行数据输入
def input_data(self,locate_type,value,data):
    # 调用定位方法进行元素定位
    el = self.locateElement(locate_type,value)
    # 执行输入操作
    el.send_keys(data)

# 获取指定元素的文本内容
def get_text(self, locate_type, value):
    # 调用定位方法进行元素定位
    el = self.locateElement(locate_type, value)
    return el.text

# 获取指定元素的属性值
def get_attr(self, locate_type, value, data):
    # 调用定位方法进行元素定位
    el = self.locateElement(locate_type, value)
    return el.get_attribute(data)

# 收尾清理方法
def __del__(self):
    time.sleep(3)
    self.driver.quit()

if name == ‘main’:
pass

‘’’

import unittest

class Testa(unittest.TestCase):
def test_001(self):
driver=webdriver.Chrome()
driver.get(‘http://www.abreact.top/login/’)
el1=driver.find_element_by_name(‘loginName’)
el1.send_keys(‘root’)
el2=driver.find_element_by_name(‘loginPwd’)
el2.send_keys(‘12’)
el3=driver.find_element_by_id(‘sub’)
el3.click()
el4=driver.find_element_by_id(‘mi’).text
self.assertEqual(“root”,el4)
driver.quit()
def test_002(self):
driver=webdriver.Chrome()
driver.get(‘http://www.abreact.top/login/’)
el1=driver.find_element_by_name(‘loginName’)
el1.send_keys(‘root’)
el2=driver.find_element_by_name(‘loginPwd’)
el2.send_keys(‘1222’)
el3=driver.find_element_by_id(‘sub’)
el3.click()
el4=driver.switch_to.alert.text
self.assertEqual(‘登陆失败,请重新登陆!!’,el4)
driver.quit()
if name==‘main’:
tests=Testa()
suit=unittest.TestSuite()
test_list=[‘test_001’,‘test_002’]
for i in test_list:
suit.addTest(Testa(i))
unittest.TextTestRunner(verbosity=2).run(suit)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值