一、滚动条处理
①为什么要操作滚动条?
1. 在HTML页面中,由于前端技术框架的原因,页面元素为动态显示,元素根据滚动条的下拉而被加载
2. 页面注册同意条款,需要滚动条到最底层,才能点击同意
实现方式:
②说明:selenium中并没有直接提供操作滚动条的方法,但是它提供了可执行javaScript脚本的方法,所以我们可以通过JavaScript脚本来达到操作滚动条的目的
③步骤:
1、设置JavaScript脚本控制滚动条
js = “window.scrollTo(0,1000)”
(0:左边距;1000:上边距;单位像素)
2、selenium调用执行JavaScript脚本的方法
driver.execute_script(js)
执行代码:
import time
from selenium import webdriverdriver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('https://www.csdn.net')
time.sleep(3)
# 第一步,通过javaScript脚本执行滚动条
js = 'window.scrollTo(0,10000)'
# 第二步,selenium中调用执行JavaScript脚本的方法
driver.execute_script(js)
time.sleep(3)
# 关闭浏览器
driver.quit()
二、窗口截屏
①应用场景:失败截图,让错误看的更直观
②方法:
driver.get_screenshot_as_file(imgpath)
参数:imgpath:图片保存路径
如:当前目录 ./test.png
上一级目录 ../test.png
③扩展:
1、多条用例执行失败,会产生多张图片,可以采用时间戳的形式,进行区分
代码:
driver.get_screenshot_as_file(“../image/%s.png”%(time.strftime(“%Y_%m_%d %H_%M_%S”)))
strftime:将时间转换为字符串函数
%Y_%m_%d %H_%M_%S:代表年月日时分秒执行代码:
执行代码:
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWaitdriver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(30)
driver.get('https://www.baidu.com')
driver.maximize_window()
"""
需求:百度登陆页面输入账号后截屏
"""
def find_ele(ele):ele1 = WebDriverWait(driver,10,5).until(lambda x:x.find_element(By.XPATH,ele))return ele1
find_ele('//*[@id="s-top-loginbtn"]').click()
# 定位用户名输入框,输入12345678910
find_ele('//*[@id="TANGRAM__PSP_11__userName"]').send_keys('12345678910')
time.sleep(3)
# 动态截屏--使用时间戳截屏
driver.get_screenshot_as_file('../image/%s.png'%(time.strftime('%Y_%m_%d %H_%M_%S')))
# 关闭浏览器
driver.quit()
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:开心螺蛳粉】自提!
软件测试面试文档
我们学习必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有字节大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
行动吧,在路上总比一直观望的要好,未来的你肯定会感谢现在拼搏的自己!如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。