web自动化测试之webdriver api总结(更新)_在整个web自动测试中只能有一个webdriver吗(1)

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化的资料的朋友,可以戳这里获取

这里写目录标题

一、控制浏览器

1、driver.set_window_size(value,value):设置浏览器的大小,单位是像素;
2、driver.back():控制浏览器的后退
3、driver.forward():控制浏览器的前进
4、driver.refresh():刷新浏览器
5、driver.maximize_window():窗口最大化
6、driver.minimize_window():窗口最小化

from selenium import webdriver
import time

driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')

#todo 设置浏览器的大小
driver.set\_window\_size(2000,2000) #单位是像素

input_el=driver.find\_element\_by\_xpath('//input[@id="kw"]')
input_el.send\_keys('kobe')
butten_el=driver.find\_element\_by\_xpath('//input[@type="submit"]').click()
time.sleep(2)
#todo 控制浏览器的后退
driver.back()

time.sleep(2)
#todo 控制浏览器的前进
driver.forward()

time.sleep(2)
#todo 刷新浏览器
driver.refresh()

二、WebElement常用方法

clear() 清楚文本
send_keys(value) 键盘输入
click() 单击元素
submit() 提交表单
size 返回元素的尺寸
text 获取元素的文本
get_attribute(name) 获取属性值
is_displayed() 设置该元素是否用户可见

from selenium import webdriver
import time

driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')

input_el=driver.find\_element\_by\_xpath('//input[@id="kw"]')
input_el.send\_keys('kobe')
time.sleep(2)
#todo 清楚文本
input_el.clear()
input_el.send\_keys('curry')

#todo 文本框提交
input_el.submit()

from selenium import webdriver
import time

driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')


#获取输入框的尺寸
input_el=driver.find\_element\_by\_xpath('//input[@id="kw"]')
print(input_el.size)

#todo 获取文本信息
el1=driver.find\_element\_by\_xpath('//a[@class="mnav c-font-normal c-color-t"][2]')
print(el1.text)

#todo 获取target的属性值
print(el1.get\_attribute('target'))

#todo 返回元素可见
print(el1.is\_displayed())

三、获得验证信息

driver.title:获取网页标题
driver.current_url:获取网页url

from selenium import webdriver
import time

driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')

print('搜索前——当前的页面标题和url')
print(driver.title)
print(driver.current_url)

input_el=driver.find\_element\_by\_xpath('//input[@id="kw"]')
input_el.send\_keys('kobe')
butten_el=driver.find\_element\_by\_xpath('//input[@type="submit"]').click()

print('搜索后——当前的页面标题和url')
print(driver.title)
print(driver.current_url)

四、显性等待

locator=(‘xpath’,‘//input[@id=“kw1”]’)
webdriverwait=WebDriverWait(driver,5,0.5)
搭配合适的until方法 判断元素是否可见,元素可见继续向下执行
el=webdriverwait.until(expected_conditions.visibility_of_element_located(locator))

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions
import time

driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')

#设置线性等等待
webdriverwait=WebDriverWait(driver,5,0.5)

#搭配合适的until方法 判断元素是否可见,元素可见继续向下执行
locator=('xpath','//input[@id="kw1"]')

el=webdriverwait.until(expected_conditions.visibility\_of\_element\_located(locator))

el.send\_keys('kobe')

el1=driver.find\_element\_by\_xpath('//input[@type="submit"]').click()

自定义显性等待

from selenium import webdriver

import time

driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://www.baidu.com')


print('输出一个时间:',time.ctime())

#使用循环判断定位的元素是否存在
for i in range(10):
    try:
        element=driver.find\_element\_by\_xpath('//input[@id="kw1"]')
        if element.is\_displayed():
            break
    except:
        pass
    time.sleep(1)
else:
    print('Timeout')
print('等待时长',time.ctime())

五、隐式等待

driver.implicitly\_wait(10)   #单位是秒

六、定位一组元素

获取一组元素
el_list=driver.find_elements_by_xpath(‘//div[@class=“name-box”]/a’)

from selenium import webdriver
import time
driver=webdriver.Chrome("C:\Program Files\Google\Chrome\Application\chromedriver.exe")
driver.get('https://qidian.com/rank/')


#获取一组元素
el_list=driver.find\_elements\_by\_xpath('//div[@class="name-box"]/a')
print(len(el_list))

#遍历列表
for el in el_list:
    print(el.text)

执行结果

捕星之执宰星河
7号基地
陈医生,别怂!
请公子斩妖
开局就较真,对面被我吓到报警!
做媒这一块,我谁都不服
曾经,我想做个好人
大明:我,调教木匠皇帝
身为超人弟弟的我却成了祖国人

灵境行者
明克街13号
这游戏也太真实了
不科学御兽
家父汉高祖
深空彼岸
择日飞升
我的属性修行人生
我已不做大佬好多年

择日飞升
夜的命名术
陈医生,别怂!
我的属性修行人生
我在修仙界长生不死
开局就较真,对面被我吓到报警!
宇宙职业选手
深空彼岸
什么叫六边形打野啊

夜的命名术
家父汉高祖
择日飞升
明克街13号
这游戏也太真实了
道诡异仙
大乘期才有逆袭系统
我的属性修行人生
不科学御兽

从洪荒逃到武侠
美漫:我的战锤模拟器
曹操穿越武大郎
捉诡二十年,我进入了惊悚游戏
什么叫Carry型上单啊
代价逆转:我在大周斩仙
从体术开始纵横诸天
从欢乐颂开始的影视人生
这个武者太危险

七、多窗口切换

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!


## 七、多窗口切换





[外链图片转存中...(img-lLXpL4mp-1715066831835)]
[外链图片转存中...(img-eTLy27UI-1715066831835)]

**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化的资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618608311)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值