找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
1.定位文本框,密码框
先使用web元素定位方法定位文本框,密码框,再使用send_keys()方法进行文本,密码输入
from selenium import webdriver
# import time
# import random
# driver= webdriver.Chrome()
# driver.get("https://www.baidu.com")
# driver.maximize_window()窗口最大化
# time.sleep(3)
# driver.find_element_by_name("username").send_keys('admin')#输入账号
# time.sleep(2)
# driver.find_element_by_name('password').send_keys('123456')#输入密码
2.定位普通按钮,链接,隐藏框
方法:先使用web元素定位方法定位元素,再使用click()方法进行点击。
#定位性别单选框
# driver.find_element_by_css_selector('#girl').click()#点击女士
# time.sleep(2)
# driver.find_element_by_css_selector('#boy').click()#点击男士
# 多选框
# # driver.find_element_by_id('p').click()
# # driver.find_element_by_id('j').click()
# # driver.find_element_by_id('h').click()
# # driver.find_element_by_id('g').click()
# # time.sleep(3)
checkbox=driver.find_elements_by_name('subject')
# for i in range(3):
#     inx = random.randint(0,len(checkbox)-1)
#     box = checkbox.pop(inx)
#     box.click()
#     time.sleep(1)
3.获取下拉框选项
#下拉框定位
# select=driver.find_element_by_id("school")#定位下拉框
# time.sleep(2)
# select.find_element_by_css_selector('[value="sh"]').click()#根据下拉框value值进行定位并点击选择上海校区
# time.sleep(2)
# select.find_element_by_css_selector('[value="tj"]').click()#根据下拉框value值进行定位并点击选择天津校区
4.上传文件
fi = r'D:\html\debug.log'#需要上传的文件
# a =driver.find_element_by_xpath('/html/body/form/table/tbody/tr[8]/td[2]/p/input')#上传按钮
# a.send_keys(fi)
5.alert弹窗处理
driver.find_element_by_name('name').click()
# text= driver.switch_to.alert.text#获取弹窗文本
# print(text)#打印文本
# time.sleep(1)
# #driver.switch_to.alert.accept()#点击弹窗确定按钮
# driver.switch_to.alert.dismiss()#点击弹窗取消按钮
# driver.set_window_size(1000,600)#设置窗口大小
# size1=driver.get_window_size()#获取设置后的窗口大小
# print(size1)
# time.sleep(1)
# #driver.close()
# driver.quit()
6.滚动条定位
#window.scrollTo页面滑动
# js='window.scrollTo(0,1000)'#从顶部0的位置滑到1000位置
# driver.execute_script(js)#执行脚本
# time.sleep(3)#强制等待
# js1='window.scrollTo(0,0)'#从底部滚动返回到顶部
# driver.execute_script(js1)#执行脚本
# time.sleep(2)#强制等待
# driver.close()#退出
7. Keys类:作用就是模拟鼠标键盘的快捷操作
from selenium import webdriver
# import time
# from selenium.webdriver.common.keys import Keys
# import random
# driver= webdriver.Chrome()
# driver.get("https://www.baidu.com")
# driver.maximize_window()
# time.sleep(3)
# driver.find_element_by_id('kw').send_keys('武汉多测师')
# driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')#全选
# driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'x')#剪切
# #driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'v')#粘贴
# driver.find_element_by_id('kw').send_keys(Keys.ENTER)#回车
# def ke_ys(a,b):
#     return driver.find_element_by_id(a).send_keys(b)
# if __name__ == '__main__':
#     ke_ys('kw','武汉多测师')#先输入
#     ke_ys('kw',(Keys.ENTER))
8.悬停
# from selenium import webdriver
# import time
# from selenium.webdriver.common.action_chains import ActionChains
# import random
# driver= webdriver.Chrome()
# driver.get("https://www.baidu.com")
# driver.maximize_window()
# time.sleep(3)
# driver.find_element_by_id('s-usersetting-top').click()#点击设置功能
# driver.find_element_by_class_name('setpref').click()#点击搜索设置功能
# time.sleep(2)
# driver.find_element_by_xpath('//*[@id="se-setting-7"]/a[2]').click()#点击保存设置
# time.sleep(2)
# driver.switch_to.alert.accept()#点击弹窗确定按钮
# driver.quit()
9.selenium中的三种等待方式
1.sleep(秒数) :强制等待
2.implicitly_wait(秒数): 隐式等待
等待页面所有的元素加载完成,则会自动进行下一步操作,如果等待时间超过设置的时间则会报错
3.WebDriveWait:显示等待
等待页面特定的某一个元素加载后,才会进行下一步操作,如果设定的时间内没有找到则报错
get_screenshot_as_file 截图
# from selenium import webdriver
# import time
# driver= webdriver.Chrome()
# driver.get("https://www.baidu.com")
# driver.maximize_window()
# driver.implicitly_wait(10)
# driver.find_element_by_id('kw').send_keys("武汉")
# driver.find_element_by_id('su').click()
# path =r'D:\html\baidu.png'#把图片保存到该路径下
# driver.get_screenshot_as_file(path)#把当前页面进行截图
# driver.close()
10.窗口刷新、返回(refresh/back)
from selenium import webdriver
# import time
# driver= webdriver.Chrome()
# driver.get("https://www.baidu.com")
# driver.maximize_window()#窗口最大化
# driver.implicitly_wait(10)
# driver.refresh()#刷新窗口
# time.sleep(2)
# driver.find_element_by_id('kw').send_keys('武汉')
# driver.find_element_by_id('su').click()
# time.sleep(3)
# driver.back()#返回上一级
# time.sleep(2)
# driver.close()#每一条用例执行完毕后需要加上一个:关闭浏览器
11.句柄
from selenium import webdriver
# import time
# driver= webdriver.Chrome()
# driver.get("https://www.baidu.com")#百度
# driver.maximize_window()#窗口最大化
# time.sleep(2)
# ##driver.get("http://www.jd.com")#京东
注意:在一个案例中不要通过get打开多个窗口,因为只能显示最后的窗口,前面的窗口会被后面进行覆盖;
# jd="window.open('http://www.jd.com')"
# driver.execute_script(jd)
# #如果要实现打开多个网址,需要使用window.open打开
# driver.implicitly_wait(10)
# #在京东输入框输入商品
# #driver.find_element_by_id('key').send_keys('手机')
# # title= driver.title#获取当前窗口的标题
# # print(title)#百度一下,你就知道
# #切换窗口
# head=driver.current_window_handle#获取当前的单个句柄
# print(head)
# heads=driver.window_handles#获取已知窗口的所有句柄
# print(heads)#返回是一个列表
# #通过句柄索引切换窗口
driver.switch_to.window(handles[index])
# driver.switch_to.window(heads[1])
# # title1= driver.title
# # print(title1)
# driver.find_element_by_id('key').send_keys('手机')
题:用刚刚讲的句柄来完成 如何判断是在百度切换到jd窗口
# from selenium import webdriver
# import time
# driver= webdriver.Chrome()
# driver.get("https://www.baidu.com")#百度
# driver.maximize_window()#窗口最大化
# time.sleep(2)
# jd="window.open('http://www.jd.com')"
# driver.execute_script(jd)
# driver.implicitly_wait(10)
# he=driver.current_window_handle#获取当前的句柄
# heads= driver.window_handles#获取所有的句柄
# for i in heads:
#     if i !=he:
#         driver.switch_to.window(i)
# tit= driver.title#获取窗口标题
# print(tit)
12.iframe定位
from selenium import webdriver
import time
driver= webdriver.Chrome()
driver.get("https://www.jd.com")#京东
driver.maximize_window()#窗口最大化
driver.implicitly_wait(10)
driver.find_element_by_link_text("你好,请登录").click()
time.sleep(2)
driver.find_element_by_class_name('QQ-icon').click()
time.sleep(2)
# driver.find_element_by_id('img_out_382002847').click()
第一种方法
#driver.switch_to.frame('ptlogin_iframe')#进入到iframe
第二种方法
fi=driver.find_element_by_css_selector('[frameborder="0"]')
driver.switch_to.frame(fi)
time.sleep(2)
driver.find_element_by_id('img_out_382002847').click()
time.sleep(2)
driver.switch_to.default_content()#取消所有的frame,跳回最外面,退出iframe
driver.switch_to.parent_frame()#取消当前的frame,只跳出一层
driver.find_element_by_id('key').send_keys('手机')
driver.close()



分享至 : QQ空间
收藏

0 个回复

您需要登录后才可以回帖 登录 | 立即注册