当前位置:   article > 正文

Selenium入门(自动右键保存图片到本机上)_selenium右键保存图片

selenium右键保存图片

在这里插入图片描述

前言

入职测开一段时间,基本就是熟悉需求,熟悉业务,熟悉这熟悉那,再跟着需求做各种各样的测试和联调,趁着业余时间,也是学习了一下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
  • 1
  • 2

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

3、导入相关库

from selenium import webdriver
import time
import re
from selenium.webdriver.common.action_chains import ActionChains
import pyautogui
  • 1
  • 2
  • 3
  • 4
  • 5

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

browser = webdriver.Chrome()
url = 'https://wallhaven.cc/'
browser.get(url)
  • 1
  • 2
  • 3

复制代码

之后应该会自动打开这个页面,我们想做的是自动输入图片名称,然后点击小放大镜,所以我们应该需要先获得这两个元素,获得元素的方式大概有以下几种:

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

我们首先把光标放到元素上,然后右键-检查(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() #进行点击
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

text = browser.page_source # 获取页面信息
pattern = re.compile(r'<a class="preview" href="(.*?)" target="_blank">')
res = re.findall(pattern,text) # 正则表达式匹配
  • 1
  • 2
  • 3

首先获取每个图片的预览链接,这里我利用正则去获取,也可以利用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'])
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

之后就是遍历每一个url,进行右键-保存操作,具体可以看代码~注释很详细。
在这里插入图片描述

PyAutoGUI是一个纯Python的GUI自动化工具,可以用程序自动控制鼠标和键盘操作,我利用Selenium尝试自动右键保存多次无果,采用了这个方式,也是很顺利完成了。(如果有Selenium可以自动右键并回车的方式务必分享一下~~)

6、总结

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

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33

偷偷吐槽一句,可能实习期间接触的东西还是不多,有时甚至觉得有些无聊,但还是要在完成需求的空暇时间不断完善自己,让自己不断成长~

在这里插入图片描述

最后: 可以在公众号:伤心的辣条 ! 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!,其中包括了有基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!喜欢软件测试的小伙伴们,可以加入我们的测试技术交流扣扣群:914172719(里面有各种软件测试资源和技术讨论)


好文推荐

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

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

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

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/372260
推荐阅读
相关标签
  

闽ICP备14008679号