软件测试(6)----web自动化测试(selenium)

from selenium import webdriver
from selenium.webdriver import ActionChains
import time
‘’’
f= webdriverameChrome()

最大化

famemaximize_window()

获取浏览器尺寸

size=f.get_window_size()
print(size)

设置窗口大小

f.set_window_size(400,400)

获取位置

pos=f.get_window_position()
print(pos)

设置窗口位置

f.set_window_position(100,100)
print(f.get_window_position())
#关闭浏览器,关闭当前标签
f.close()

关闭所有标签

f.quit()
访问url
url1=‘https://www.baidu.com’
f.get(url1)
print(“访问:”,f.current_url)
f.get(“http://www.abreact.top”)
print(“访问:”,f.current_url)
#显示页面标题
print(“title:”,f.title)
#保存快照
f.get_screenshot_as_file(‘baidu.png’)
f.get_screenshot_as_png()
#源码
code=f.page_source
#源码保存
with open(‘abreact.html’,‘wb’) as f:
f.write(code.encode())
f.close()
#---------------------------------------------------------------------------------------------------------------------
– 百度搜索abreact.top—

#元素定位分类:1.直接调用型(推荐):driver.find.element_by_xxx(value) 2.by方法:from selenium.webdriver.common.by import By driver.find_element(By.xxx.value)

f=webdriver.Chrome()
url=‘http://www.baidu.com’
f.get(url)

#定位标签
el=f.find_element_by_id(‘kw’)
el.send_keys(‘bareact.top’)
el_click=f.find_element_by_id(‘su’)
time.sleep(5)

#对标签进行点击操作
el_click.click()
f.close()

#-------------------------------------------------------------------------------------------------------------------
定位方式: 1.id定位 2.name定位 3.class name类名定位
4.tag name标签名定位 5.link text链接文本定位
6.partial link text部分链接文本 7.xpath定位 8.css selector选择器定位

#访问去哪儿网
url=‘https://www.qunar.com/’
f=webdriver.Chrome()
f.get(url)

#定位’攻略’
id1=f.find_element_by_id(‘link_travel’)
#点击攻略
id1.click()
time.sleep(5)
id2=f.find_element_by_id(‘link_car’)
id2.click()
time.sleep(5)
#主要练习通过id进行定位

#abreact.top网站登陆
url=‘http://www.abreact.top/login/’
user=‘root’
pds=‘12’
f=webdriver.Chrome()
f.get(url)
name=f.find_element_by_name(‘loginName’)
name.send_keys(user)
pd=f.find_element_by_name(‘loginPwd’)
pd.send_keys(pds)
sub=f.find_element_by_id(‘sub’)
time.sleep(3)
sub.click()
time.sleep(3)
f.close()

#--------------------------------------------------------------------------------------------------------------------
#打开百度 输入selenium 再清空 再输入python 再提交
url=‘http://www.baidu.com’
f=webdriver.Chrome()
f.get(url)
el1=f.find_element_by_id(‘kw’)
el1.send_keys(‘selenium’)
el1.clear()
el1.send_keys(‘python’)
el2=f.find_element_by_id(‘su’)
el2.submit()
time.sleep(3)
f.close()

#获取51job中测试工程师职位信息
url=‘https://search.51job.com/list/200000,000000,0000,00,9,99,%2B,2,1.html?lang=c&postchannel=0000&workyear=99&cotype=99&degreefrom=99&jobterm=99&companysize=99&ord_field=0&dibiaoid=0&line=&welfare=’
f=webdriver.Chrome()
f.get(url)
el1=f.find_element_by_name(‘keyword’)
el1.send_keys(‘测试工程师’)
el2=f.find_element_by_class_name(‘p_but’)
el2.click()
el3=f.find_elements_by_css_selector(’.el .t1 span a’)
for i in el3:
print(i.text,i.get_attribute(‘href’))
‘’’
#----------------------------------------------------------------------------
#selenium api 高级用法

#一、多标签切换
#1.获得所有窗口句柄 : headlers = driver.window_headlers()
#获得的值为每个窗口对应的值
#2.通过句柄值进入窗口:driver.switch_to_window(headlers[n])
‘’’
url=‘https://blog.csdn.net/weixin_43576564’
f=webdriver.Chrome()
f.get(url)
handles_list=f.window_handles
el1=f.find_elements_by_css_selector(’.article-list div h4 a’)
print(f.window_handles)
for i in el1:
print(i.text,i.get_attribute(‘href’))
i.click()
f.switch_to.window(handles_list[0])
time.sleep(5)
print(f.window_handles)

#------------------------------------------------------------------------------
#多表单切换 两种方式:
1.直接切换:driver.switch_to.frame(‘frame标签的id值’)
2.先对frame标签定位,再使用switch_to.frame函数
#实例:进行qq邮箱登陆
url=‘https://mail.qq.com/’
f=webdriver.Chrome()
f.get(url)
el=f.find_element_by_name(‘login_frame’)
f.switch_to.frame(el)
#f.switch_to.frame(‘login_frame’)
el1=f.find_element_by_id(‘u’)
el1.clear()
el1.send_keys(‘215658134’)
el2=f.find_element_by_id(‘p’)
el2.send_keys(‘215658qq’)
el3=f.find_element_by_id(‘login_button’)
el3.click()

#---------------------------------------------------------------------------
#多表单切换
#处理方法:
#1、跳回最外层页面:driver.switch_to.default_content()
#2、跳到上层页面:driver.switch_to.parent_frame()
f=webdriver.Chrome()
url=r’file:///Y:/BaiduNetdiskDownload/%E5%B0%B1%E4%B8%9A%E7%8F%AD6-20%E9%83%A8%E5%88%86/13_%E5%B0%B1%E4%B8%9A%E7%8F%AD%E4%B9%8Bweb%E7%AB%AF%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95%EF%BC%88%E5%85%B182%E9%9B%86%EF%BC%89/web%E8%87%AA%E5%8A%A8%E5%8C%96day04/04-%E6%BA%90%E4%BB%A3%E7%A0%81/code/example_frame.html’
f.get(url)
f.switch_to.frame(‘itcast_frame1’)
f.switch_to.frame(‘itcast_frame2’)
el1=f.find_element_by_id(‘sb_form_q’)
el1.send_keys(‘selenium’)
el2=f.find_element_by_id(‘sb_form_go’)
el2.click()
el3=f.find_element_by_id(‘sb_form’)
print(“在第二层frame中”)

#返回最初的表单
f.switch_to.default_content()
try:
el4=f.find_element_by_id(‘sb_form’)
except:
print(“在第一层frame中”)

#---------------------------------------------------------------------------
#对鼠标进行操作
#1、导入相应的动作链类,可以存储鼠标操作,并一起执行
f=webdriver.Chrome()
f.get(‘https://www.baidu.com’)
el1=f.find_element_by_css_selector(’#lg’)
#鼠标右键操作
ActionChains(f).context_click(el1).perform()

#---------------------------------------------------------------------------
#鼠标在京东分类框悬停
url=‘https://www.jd.com/’
f=webdriver.Chrome()
f.get(url)
el1=f.find_elements_by_class_name(‘cate_menu_item’)
for i in el1:
ActionChains(f).move_to_element(i).perform()
time.sleep(1)
f.quit()

#---------------------------------------------------------------------------
#对键盘操作
#导入from webdriver.common.key import Key
#常见操作: send_keys(Keys.SPACE)、send_keys(Keys.BACK_SPACE)、send_keys(Keys.TAB)、send_keys(Keys.Esc)、
send_keys(Keys.ENTER)、send_keys(Keys.CONTROL,‘a’)、send_keys(Keys.CONTROL,‘c’)、send_keys(Keys.F1)、…
from selenium.webdriver.common.keys import Keys
f=webdriver.Chrome()
f.get(‘https://www.baidu.com’)
el2=f.find_element_by_id(‘kw’)
el2.send_keys(‘selenium’)
el3=f.find_element_by_id(‘su’)
el2.send_keys(Keys.CONTROL,‘a’)
time.sleep(1)
el2.send_keys(Keys.CONTROL,‘x’)
time.sleep(1)
el2.send_keys(Keys.CONTROL,‘v’)
el3.click()
f.quit()

#---------------------------------------------------------------------------
#弹窗的操作
#实例:访问百度主页》点击设置》搜索设置》保存设置
url=‘http://www.abreact.top/moveMove/?id=&movenm=%E2%80%9C%E5%90%83%E5%90%83%E2%80%9D%E7%9A%84%E7%88%B1’
f=webdriver.Chrome()
f.get(url)
el1=f.find_element_by_id(‘sub’)
el1.click()
f.switch_to.alert.dismiss()[accept()、text()、send_keys()]
‘’’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值