赞
踩
入职测开一段时间,基本就是熟悉需求,熟悉业务,熟悉这熟悉那,再跟着需求做各种各样的测试和联调,趁着业余时间,也是学习了一下Selenium,在之前Selenium是我作为爬虫的工具,不过之后就用来做写一些自动化测试脚本啦~~(这里使用Python中的Selenium库进行Coding~~
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google,Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。(取自百度,简而言之就是可以模拟用户去操作浏览器,可支持许多浏览器驱动。)
我们此次需要的python库有selenium、pyautogui,图片来源:wallhaven.cc/
pip install selenium
pip install pyautogui
ps:安装selenium需要注意浏览器版本与驱动版本是否匹配
from selenium import webdriver
import time
import re
from selenium.webdriver.common.action_chains import ActionChains
import pyautogui
browser = webdriver.Chrome()
url = 'https://wallhaven.cc/'
browser.get(url)
之后应该会自动打开这个页面,我们想做的是自动输入图片名称,然后点击小放大镜,所以我们应该需要先获得这两个元素,获得元素的方式大概有以下几种:
find_element_by_name
find_element_by_id
find_element_by_xpath
find_element_by_link_text
find_element_by_partial_link_text
find_element_by_tag_name
find_element_by_class_name
find_element_by_css_selector
我们首先把光标放到元素上,然后右键-检查(Chrome浏览器),就可以定位到相应的代码下,然后右键-COPY-COPY XPATH(也可以COPY其他方式)。
我这里利用id和xpath分别获得输入框和搜索按钮两个元素。
input_ = browser.find_element_by_id('search-text') #获取输入框元素
input_.send_keys('Makise Kurisu') #输入要搜索的名称
time.sleep(2) #睡两秒
button_ = browser.find_element_by_xpath('//*[@id="startpage-search"]/div/button') #获取搜索按钮元素
button_.click() #进行点击
之后浏览器就会自动进行输入和搜索~
text = browser.page_source # 获取页面信息
pattern = re.compile(r'<a class="preview" href="(.*?)" target="_blank">')
res = re.findall(pattern,text) # 正则表达式匹配
首先获取每个图片的预览链接,这里我利用正则去获取,也可以利用xpath等方式。
for i in res:
browser.get(i) # 进入链接
time.sleep(3)
pic = browser.find_element_by_xpath('//*[@id="wallpaper"]') # 获取元素
action = ActionChains(browser).move_to_element(pic) # 移动到该元素
action.context_click(pic) # 右键点击该元素
action.perform() # 执行
pyautogui.typewrite(['v']) # 敲击V进行保存
# 单击图片另存之后等1s敲回车
time.sleep(1)
pyautogui.typewrite(['enter'])
之后就是遍历每一个url,进行右键-保存操作,具体可以看代码~注释很详细。
PyAutoGUI是一个纯Python的GUI自动化工具,可以用程序自动控制鼠标和键盘操作,我利用Selenium尝试自动右键保存多次无果,采用了这个方式,也是很顺利完成了。(如果有Selenium可以自动右键并回车的方式务必分享一下~~)
至此算是正式结束了,接下来放上所有代码
from selenium import webdriver import time import re from selenium.webdriver.common.action_chains import ActionChains import pyautogui browser = webdriver.Chrome() url = 'https://wallhaven.cc/' browser.get(url) input_ = browser.find_element_by_id('search-text') #获取输入框元素 input_.send_keys('Makise Kurisu') #输入要搜索的名称 time.sleep(2) #睡两秒 button_ = browser.find_element_by_xpath('//*[@id="startpage-search"]/div/button') #获取搜索按钮元素 button_.click() #进行点击 text = browser.page_source # 获取页面信息 pattern = re.compile(r'<a class="preview" href="(.*?)" target="_blank">') res = re.findall(pattern,text) # 正则表达式匹配 for i in res: browser.get(i) time.sleep(3) pic = browser.find_element_by_xpath('//*[@id="wallpaper"]') action = ActionChains(browser).move_to_element(pic) # 移动到该元素 action.context_click(pic) # 右键点击该元素 action.perform() # 执行 pyautogui.typewrite(['v']) # 敲击V进行保存 # 单击图片另存之后等1s敲回车 time.sleep(1) pyautogui.typewrite(['enter']) time.sleep(10) browser.close()
偷偷吐槽一句,可能实习期间接触的东西还是不多,有时甚至觉得有些无聊,但还是要在完成需求的空暇时间不断完善自己,让自己不断成长~
最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。
如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)
转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。