找回密码
 立即注册

推荐阅读

  • 便民服务
  • 关注我们
  • 社区新手
定位方式
from selenium import  webdriver #导入selenium库引入webdriver
import time导入时间模块
import random
from selenium.webdriver.support.select import Select#导入select类
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("file:///C:/Users/Administrator/Documents/Tencent%20Files/2453731669/FileRecv/student_msg.html")#打开测试地址
time.sleep(2)#强制等待
driver.maximize_window()#窗口最大化
#为了元素定位更加准确,防止元素折叠导致元素定位不到,代码异常
time.sleep(2)
#id定位
driver.find_element_by_id("userid").send_keys("admin")#输入账号
time.sleep(2)
#name定位
driver.find_element_by_name("password").send_keys("123456")#输入密码
#单选框性别选择框
driver.find_element_by_id("girl").click()#点击女生
time.sleep(2)
driver.find_element_by_id("boy").click()#点击男生
#多选框定位
# driver.find_element_by_id("h").click()
# driver.find_element_by_id("p").click()
# driver.find_element_by_id("j").click()
#随机定位
checkbox=driver.find_elements_by_name("subject")#获取所有元素值为subject
for i in range(3):#取值次数
    inx=random.randint(0,len(checkbox)-1)#随机在列表中取值,因在删除列表长度的变化所以用到len
    box=checkbox.pop(inx)#把取出来的值删除,防止再次选中
    box.click()
    time.sleep(2)
#下拉选择框定位
#要导入select 类
selectbox=driver.find_element_by_id("school")#定位下拉框
time.sleep(2)
Select(selectbox).select_by_index(3)#通过索引值定位下拉选项
time.sleep(3)
Select(selectbox).select_by_value("tj")#通过value值定位下拉选择项
time.sleep(3)
Select(selectbox).select_by_visible_text("多测师广州校区")#通过可见文本定位下拉选择框

上传文件
from selenium import  webdriver
import time
import random
from selenium.webdriver.support.select import Select#导入select类
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("file:///C:/Users/Administrator/Documents/Tencent%20Files/2453731669/FileRecv/student_msg.html")#打开测试地址
time.sleep(2)#强制等待
driver.maximize_window()#窗口最大化
#上传文件
file=r'D:\html\debug.log' #需要上传的文件
driver.find_element_by_xpath('/html/body/form/table/tbody/tr[8]/td[2]/p/input').send_keys(file)
#ui自动化常用的断言方式
#获取元素文本
from selenium import  webdriver
import time
import random
from selenium.webdriver.support.select import Select#导入select类
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("https://www.baidu.com/")#打开测试地址
time.sleep(2)#强制等待
driver.maximize_window()#窗口最大化
#获取元素文本
a=driver.find_element_by_id("s-usersetting-top").text
print(a)#设置

#ui自动化常用的断言方式
#第一种
# if a=='设置':#常用的一致断言校验方式
#     print('成功')
# else:
#     print('失败')

#第二种assert 正常情况下不会抛任何信息,错误时会抛出异常
assert a =="设置"#python自带
#获取窗口标题
from selenium import  webdriver
import time
import random
from selenium.webdriver.support.select import Select#导入select类
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("https://www.baidu.com/")#打开测试地址
time.sleep(2)#强制等待
driver.maximize_window()#窗口最大化
#获取窗口标题
a=driver.title#获取窗口标题
print(a)#百度一下,你就知道
鼠标悬停
from selenium import  webdriver
import time
import random
from selenium.webdriver.support.select import Select#导入select类
from selenium.webdriver.common.action_chains import  ActionChains#导入ActionChains类
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("https://www.baidu.com/")#打开测试地址
time.sleep(2)#强制等待
driver.maximize_window()#窗口最大化

#悬停
a=driver.find_element_by_id("s-usersetting-top")#找到悬停的位置
#导入ActionChains类
#在a这个位置模拟鼠标的操作
#perform()模拟鼠标放置在摸一个位置上
ActionChains(driver).move_to_element(a).perform()#鼠标悬停在设置按钮上
time.sleep(2)
#xpath定位
driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[1]/span').click()#点击搜索设置
#截图
path=r'C:\Users\Administrator\Desktop\html\baidu.png'#定义图片的存放路径及名称
driver.get_screenshot_as_file(path)
#通过对象调用get_screenshot_as_file 把当前界面进行截图,把图片保持到自定义的路径中
打开多个窗口
from selenium import  webdriver
import time
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("https://www.baidu.com/")#打开测试地址
#driver.get("http://www.jd.com")
#在一个案例中不能通过get打开多个窗口,只能显示,前面窗口只能被后面覆盖
jd="window.open('http://www.jd.com')"
driver.execute_script(jd)
#如果要实现多个网站,需要使用window.open打开
time.sleep(2)#强制等待
driver.maximize_window()#窗口最大化
切换页面,在新页面去搜索月饼
from selenium import  webdriver
import time
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("https://www.baidu.com/")#打开测试地址
#driver.get("http://www.jd.com")
#在一个案例中不能通过get打开多个窗口,只能显示,前面窗口只能被后面覆盖
jd="window.open('http://www.jd.com')"
driver.execute_script(jd)
#如果要实现多个网站,需要使用window.open打开
time.sleep(2)#强制等待
driver.maximize_window()#窗口最大化
#切换页面
hade=driver.current_window_handle#获取当前的单个句柄
print(hade)#CDwindow-73F22132BFCBADDEF71C1DA66D87CD56百度页面的句柄
hades=driver.window_handles#获取到已知窗口
print(hades)#['CDwindow-DFC34423291908C770878AA1043C7833', 'CDwindow-2DCE9AB85E57353B722E6165F46BB213']
#切换通过句柄切换
driver.switch_to.window(hades[1])#通过switch_to切换窗口结合句柄索引
title1=driver.title#获取窗口标题
print(title1)#京东(JD.COM)-正品低价、品质保障、配送及时、轻松购物!
time.sleep(2)
driver.find_element_by_id("key").send_keys("月饼")
打开测试地址,输入文本,点击搜索,刷新窗口,返回上一级
from selenium import  webdriver
import time
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("https://www.baidu.com/")#打开测试地址
driver.maximize_window()#窗口最大化
time.sleep(2)
driver.find_element_by_id("kw").send_keys("python")#定位搜索框,输入文本
driver.find_element_by_id("su").click()#点击搜索按钮
time.sleep(3)
driver.refresh()#刷新窗口
time.sleep(2)
driver.back()#返回上一级
获取窗口大小,修改窗口大小,关闭浏览器
from selenium import  webdriver
import time
driver=webdriver.Chrome()#通过webdriver 调用chrome 生成浏览器对象
driver.get("https://www.baidu.com/")#打开测试地址
driver.maximize_window()#窗口最大化
size=driver.get_window_size()#获取窗口大小
print(size)#{'width': 1296, 'height': 696}
time.sleep(5)
driver.set_window_size(1000,500)#修改窗口大小
time.sleep(5)
#只需要写一个
driver.close()#关闭当前浏览器
#driver.quit()#关闭所有窗口
每一条用例执行完需加上上一个关闭浏览器,目的是节约占用内存提高自动化性能

分享至 : QQ空间
收藏

0 个回复

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