先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip1024b (备注软件测试)
正文
search_js2 = “document.querySelectorAll(‘.s_ipt’)[0].value=‘selenium’;”# 通过css定位,然后赋值“selenium”
button_js = “document.getElementById(‘su’).click();”# 通过id定位,然后执行单击操作
button_js2 = “document.getElementsByClassName(‘s_btn’)[0].click()”# 通过className定位,然后执行单击操作 driver.execute_script(search_js2)#执行,execute_script(script, *args)
以上几种定位是可以再度升级,可以利用jQuery定位一波。
3.操作测试对象
coding=utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get(“http://passport.kuaibo.com/login/”)
driver.find_element_by_id(“user_name”).clear() #清除输入框的默认内容
driver.find_element_by_id(“user_name”).send_keys(“username”)
driver.find_element_by_id(“user_pwd”).clear()
driver.find_element_by_id(“user_pwd”).send_keys(“password”) #输入输入框的内容为“password”
driver.find_element_by_id(“dl_an_submit”).click() #通过 submit() 来提交操作
driver.find_element_by_id(“dl_an_submit”).submit()
size=driver.find_element_by_id(“kw”).size #返回百度输入框的宽高 text=driver.find_element_by_id(“cp”).text #返回百度页面底部备案信息
返回元素的属性值,可以是 id、name、type 或元素拥有的其它任意属性
attribute=driver.find_element_by_id(“kw”).get_attribute(‘type’) #返回元素的结果是否可见,返回结果为 True 或 False
result=driver.find_element_by_id(“kw”).is_displayed()
driver.quit() #退出
4.鼠标键盘事件
from selenium import webdriver #引入 Keys 类包
from selenium.webdriver.common.keys import Keys #引入 ActionChains 类
from selenium.webdriver.common.action_chains import ActionChains
… #鼠标事件 #定位到要操作的元素
right =driver.find_element_by_xpath(“xx”) #对定位到的元素执行鼠标右键操作
ActionChains(driver).context_click(right).perform() #对定位到的元素执行鼠标双击操作
ActionChains(driver).double_click(right).perform() #对定位到的元素执行鼠标移动到上面的操作
ActionChains(driver).move_to_element(right).perform() #对定位到的元素执行鼠标左键按下的操作
ActionChains(driver).click_and_hold(right).perform() #定位元素的原位置
element = driver.find_element_by_name(“xxx”) #定位元素要移动到的目标位置
target = driver.find_element_by_name(“xxx”) #执行元素的移动操作
ActionChains(driver).drag_and_drop(element, target).perform() #键盘事件 #删除多输入的一个 值
driver.find_element_by_id(“kw”).send_keys(Keys.BACK_SPACE) #输入空格键+“教程”
driver.find_element_by_id(“kw”).send_keys(Keys.SPACE)
driver.find_element_by_id(“kw”).send_keys(u"教程") #ctrl+x 剪切输入框内容
driver.find_element_by_id(“kw”).send_keys(Keys.CONTROL,‘x’) #其余的键盘操作类似
5.等待时间
coding=utf-8
from selenium import webdriver #导入 WebDriverWait 包
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC #导入 time 包
import time
driver = webdriver.Chrome()
driver.get(“http://www.baidu.com”) #WebDriverWait()方法使用,显示等待,WebDriverWait(driver,超时时长,调用频率,忽略异常).until(可执行方法,超时返回的信息),这里可以调用EC来实现可执行方法
is_disappeared = WebDriverWait(driver, 30, 1, (ElementNotVisibleException)).until_not(lambda x: x.find_element_by_id(“kw”).is_displayed()) #until(method, message=’ ’),调用该方法提供的驱动程序作为一个参数,直到返回值不为 False
element.send_keys(“selenium”) #添加智能等待,隐时等待
driver.implicitly_wait(30)
driver.find_element_by_id(“su”).click() #添加固定休眠时间,强制等待
time.sleep(5)
driver.quit()
6.组对象定位及层级定位
7.多窗口处理
coding=utf-8
from selenium import webdriver import time
driver = webdriver.Chrome()
driver.get(“百度一下,你就知道”) #获得当前窗口
nowhandle=driver.current_window_handle #打开注册新窗口
driver.find_element_by_name(“tj_reg”).click()
allhandles=driver.window_handles #循环判断窗口是否为当前窗口
for handle in allhandles: if handle != nowhandle:
driver.switch_to_window(handle) print ‘now register window!’
切换到邮箱注册标签
driver.find_element_by_id(“mailRegTab”).click()
time.sleep(5)
driver.close() #回到原先的窗口
driver.switch_to_window(nowhandle)
driver.find_element_by_id(“kw”).send_keys(u"注册成功!")
time.sleep(3) #ifrome处理 #这里会自动识别id,name,如果没有则可以将元素通过选择器找到,然后输入该元素即可
driver.switch_to_frame(“f1”)
element = driver.find_element_by_id(“kw”)
driver.switch_to_frame(element)
driver.quit()
8.提示窗口处理
coding=utf-8
from selenium import webdriver import time
driver = webdriver.Chrome()
driver.get(“百度一下,你就知道”) #点击打开搜索设置
driver.find_element_by_name(“tj_setting”).click()
driver.find_element_by_id(“SL_1”).click() #点击保存设置
driver.find_element_by_xpath(“//div[@id=‘gxszButton’]/input”).click() #获取网页上的警告信息
alert=driver.switch_to_alert() #接收警告信息
alert.accept() #取消对话框(如果有的话)
alert.dismiss() #输入值(如果有的话)
alert.send_keys(“xxx”)
9.控制浏览器滚动条
这个运用之前提示的jq语句即可实现。
10.cookie处理,主要用途在于处理验证码问题
coding=utf-8
from selenium import webdriver import time
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
um import webdriver import time
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip1024b (备注软件测试)
[外链图片转存中…(img-LQ9Rk3UK-1713348294947)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!