前言

入职测开一段时间,基本就是熟悉需求,熟悉业务,熟悉这熟悉那,再跟着需求做各种各样的测试和联调,趁着业余时间,也是学习了一下Selenium,在之前Selenium是我作为爬虫的工具,不过之后就用来做写一些自动化测试脚本啦~~(这里使用Python中的Selenium库进行Coding~~

1、什么是Selenium

Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google,Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。(取自百度,简而言之就是可以模拟用户去操作浏览器,可支持许多浏览器驱动。)

2、前期准备

我们此次需要的python库有selenium、pyautogui,图片来源:wallhaven.cc/

pip install selenium
pip install pyautogui

ps:安装selenium需要注意浏览器版本与驱动版本是否匹配

3、导入相关库

from selenium import webdriver
import time
import re
from selenium.webdriver.common.action_chains import ActionChains
import pyautogui

4、声明并调用浏览器,打开网页,自动搜索

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() #进行点击

之后浏览器就会自动进行输入和搜索~

5、获取每张图片的预览点击链接,并自动进入每张图片进行右键-保存

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可以自动右键并回车的方式务必分享一下~~)

6、总结

至此算是正式结束了,接下来放上所有代码

from selenium import webdriver
import time
import re
from selenium.webdriver.common.action_chains import ActionChains
import pyautoguibrowser = 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(里面有各种软件测试资源和技术讨论)


好文推荐

转行面试,跳槽面试,软件测试人员都必须知道的这几种面试技巧!

面试经:一线城市搬砖!又面软件测试岗,5000就知足了…

面试官:工作三年,还来面初级测试?恐怕你的软件测试工程师的头衔要加双引号…

什么样的人适合从事软件测试工作?

那个准点下班的人,比我先升职了…

测试岗反复跳槽,跳着跳着就跳没了…

Selenium入门(自动右键保存图片到本机上)相关推荐

  1. python 保存图片代码_最简单的selenium+Python自动右键保存图片

    [toc] 最近需要爬古籍影印版图片,但是对方网站有反爬虫,于是考虑用selenium,selenium比想象中的简单.右键的难点在于在元素上执行右键之后,selenium就不能操作菜单了. 所以需要 ...

  2. 利用selenium模拟自动登录链家、贝壳、安居客等网站(超级实用,推荐收藏!)

    大家好, 今天跟大家分享一个利用selenium模拟自动登录王连某家.an聚客等网站. 文章内容超级实用,尽快在小本本上记录下来哟. 特别说明,以下代码仅用于交流学习,不做其他商业用途,切记切记! 上 ...

  3. 【控制】如何入门自动控制理论

    在知乎看到的神文章,将自控和现控完全的串了一篇,太好的文章了,必须搬运分享过来,也感谢作者 如何入门自动控制理论 如何入门自动控制理论 一.一个典型的系统响应有什么特点 二.幅频响应和相频响应 三.传 ...

  4. python自动输入账号密码_Python如何基于selenium实现自动登录博客园

    这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备: 本文章是使用 ...

  5. python京东自动签到_利用python Selenium实现自动登陆京东签到领金币功能

    如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个.密码的形 ...

  6. python+selenium实现自动刷新网页

    Selenium是一个用于Web应用程序测试的工具,本文介绍利用python+selenium实现自动刷新网页. 一.安装 selenium pip install selenium 二.下载并导入浏 ...

  7. selenium 实现自动登录校网(网页版)

    文章目录 selenium 实现自动登录校网 1.安装 python3.7 2.安装 selenium 3.安装 chrome 和驱动 4.定时任务 5.实现代码 selenium 实现自动登录校网 ...

  8. python基础教程:Python如何基于selenium实现自动登录博客园

    这篇文章主要介绍了Python如何基于selenium实现自动登录博客园,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 需要做的准备: 本文章是使用 ...

  9. python京东自动签到领金豆_[宜配屋]听图阁 - 利用python Selenium实现自动登陆京东签到领金币功能...

    如何自动登陆京东? 我们先来看一下京东的登陆页面,如下图所示: [插入图片,登陆页面] 登陆框就是右面这一个框框了,但是目前我们遇到一个困呐,默认的登陆方式是扫码登陆,如果我们想要以用户民个.密码的形 ...

最新文章

  1. html选择按钮selected,HTML Option defaultSelected用法及代码示例
  2. boost::hana::zip_shortest_with用法的测试程序
  3. 简述dijkstra算法原理_Dijkstra算法之 Java详解
  4. Java中的数组,列表,集合,映射,元组,记录文字
  5. Java实现用户头像上传(修改默认文件大小限制)
  6. YidaCMS网站管理系统源码V1.8.2
  7. postgres 命令行建数据库表_PostgreSQL学习笔记(1)之模板数据库
  8. php循环 跳转语句,golang循环跳转语句
  9. opencv 鼠标的使用
  10. C#制作视频播放器-player播放器组件
  11. uniapp中针对H5端做微信分享功能总结
  12. 校验-------邮箱、手机号、电话号码、身份证号码、数字等工具类
  13. 小象学院人工智能机器学习全新升级版
  14. js 时间格式化转换
  15. 基于JavaWeb的互联网金融创意众筹网站系统
  16. 苍南五凤茶进杭城“香”约西湖龙井, 茶旅融合助力乡村振兴!
  17. 计算机屏幕有条线,为什么电脑屏幕上有条线
  18. 360网站卫士推出免费风云加速
  19. Elasticsearch升级1.5版本暴露jdk的bug
  20. 使用idea搭建ssm框架,并实现简单的CRUD和分页查询功能

热门文章

  1. shared_ptr使用场景、陷阱、性能分析,使用建议
  2. python爬虫要安装什么_python爬虫之分布式爬虫和部署
  3. python 线程锁_Python多线程-线程锁
  4. atheros无线网卡驱动_5.8G无线网桥CPE,安防监控拍档高清无干扰
  5. 【毕业答辩】怎样做好毕业答辩?纯干货
  6. 免费录屏、最快截图、装X必备、看完工作学习效率直接翻倍
  7. 职高学的计算机单招考试能换专业吗,高职单招录取后可以换专业吗
  8. java 树最大距离_寻找二叉树最远的叶子结点(实例讲解)
  9. 英文字符串过长,QLabel显示不全的问题
  10. HALCON:Optical Flow(光流)