• 0
  • 0
分享
  • 太赞了! 菜鸟利用Python实现网站自动签到——软件测试圈
  • 恬恬圈 2023-08-25 13:25:13 字数 2020 阅读 1837 收藏 0

  前情提要

  小五收藏了一些论坛网站,经常需要自己登录签到,以此来获得积分金币等等。

  步骤倒是并不复杂,只需要填写账号密码登录,然后点击签到即可。

1-1.jpg

  但天天手动太容易忘了这件事啦。毕竟我们都会用python了,那就可以使用Selenium操作;浏览器实现自动签到啊!

  现在开始上手工作!

  准备工作

  首先我们需要先安装Selenium,从而实现后续自动化操控浏览器。我们可以利用它来模拟鼠标按键,跟按键精灵很类似。

  pip install selenium

  待其安装完成后,准备另一个必需工具。

  selenium可以操控多款浏览器,包括谷歌,火狐等,这里小五使用的是谷歌浏览器。

  这里需要知道浏览器的版本信息,只需打开“关于Chrome”,就可以看到了。

1-2.jpg

  如上图所示,我的浏览器版本是89.0.4389.114。然后我们需要前往(http://chromedriver.storage.googleapis.com/index.html)找到与浏览器相匹配的版本,没有一模一样的选择最近的版本也可以。

1-3.jpg

  点击进去选择对应的系统版本,下载后将chromedriver.exe解压出来,最后将其放到与python.exe文件相同的路径下。

  如果你是用的anaconda就放在下面目录下:

  C:\Users\Administrator\anaconda3

  具体位置如下图所示:

1-4.jpg

  下面我们就可以正式用python自动签到了。

  代码及讲解

  首先打开我要登录的网站,具体域名就不分享给大家了。

  先导入selenium库,这里只需使用selenium中的webdriver模块,运行:

  from selenium import webdriver

  打开下载的浏览器驱动,设置隐式等待时:

  wd=webdriver.Chrome()
  wd.implicitly_wait(1)

  执行代码的时候会自行去寻找chromedriver.exe(在python目录下寻找)。如果我们前面没有把它放在固定的路径下,就需要在这里指定chromedriver.exe路径。

  打开登录网页:

  wd.get('待登录网站URL')

1-5.jpg

  如上图所示,模拟浏览器已经打开了网站的登录界面。这个时候我们需要定位到输入框、密码框以及登录按钮等。

  这里不用担心,Selenium提供了很多种定位DOM元素的方法,各有各的特点和优势。今天就主要使用 by_xpath() 这个方法来定位元素,这个方法比较灵活方便,大部分属性都可以通过它来定位。

  【检查】→【进入开发者模式】点击左上角的图标,再点击你要找的对象,即可得到该对象的信息。点位该对象后,右键copy它的XPath!

1-6.gif

  input = wd.find_element_by_xpath('//*[@id="email"]')
  input.send_keys('kxpython@163.com')

  同理,我们可以定位到密码框,再send_keys输入密码:

  password = wd.find_element_by_xpath('//*[@id="password"]')
  password.send_keys('kxpython')

1-7.jpg

  至于需要点击的对象,可以使用click()来实现模拟点击的功能。

  点击登录

  button_login = wd.find_element_by_xpath('//*[@id="app"]/section/div/div/div/div[2]/form/div/div[5]/button')
  button_login.click()

  点击跳过弹窗

  一般登录后会有个小弹窗,关闭即可。

1-8.jpg

  wd.find_element_by_xpath('//*[@id="popup-ann-modal"]/div/div/div[3]/button').click()

  尝试签到

1-9.jpg

  try:
     wd.find_element_by_xpath('//*[@id="checkin-div"]/a').click()
  except:
     print("已签到")

  最后要记得关闭浏览器窗口。

  wd.quit()

  注:close()关闭当前窗口,wd.quit()则是关闭所有窗口。

  点击运行上面的全部代码,即可实现python对网站的自动签到。我们还可以将该python脚本设置为定时任务,这样就不用每天手动去签到啦!

  小结

  作为演示的这个网站非常简单,如果大家也想用python来自动签到的话,要根据自己的网站情况来改写脚本。

  其实 Selenium 更多的用法是自动化测试、爬虫等。


作者:何威风    

来源:http://www.51testing.com/html/93/n-7792493.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 代码题:**旋转数组:这个在美团一面的时候也遇到过**假设按照升序排序的数组在预先未知的某个点上进行了旋转。( 例如,数组 [0,1,2,4,5,6,7] 可能变为 [4,5,6,7,0,1,2] )。请找出其中最小的元素。注意数组中可能存在重复的元素。int findMin(vector<int>& nums) {         int left = 0, right = nums.size()-1,&...
            1 1 2007
            分享
          •   有一些初始的小测试团队,对BUG单可能会进行重要程度的划分,但并不会进行类型划分,其实,如果不对BUG进行错误类型定义,项目经理或测试经理并不好确认后续质量提升在哪方面进行改进,具体研发的哪个环节更需要进行改进。故此合理的对BUG单进行分类也是提交BUG的前提。以下是我整理的BUG类型分类情况:  进行BUG类型分类仅是第一步,作为WEB类的项目,一般情况下,明面上的二、三类问题,自测时容易发现且会完成修改,留到测试去提出的机率相对会少一点;而其它类问题常常因为开发时间不够或不重视等原因,大量的留给了测试阶段去提出;对于这类现象,负责的项目经理有时候是心有余而力不足;而不太负责的项目经理,...
            15 15 2282
            分享
          •   之前我们讲过,测试工程师的4层技术发展路线都需要掌握哪些技能。学而优则仕,今天我们来说说如果想做某个行业的专家应该掌握哪些技能。  如果你对测试技术不感兴趣,但对某领域的业务兴趣浓厚,可以考虑行业专家路线。  由于测试工程师对产品和业务很熟悉,成为专业的产品经理和业务专家,而且目前很多公司在Beta测试时需要专门的业务工程师或业务专家参与测试。  且配置管理和质量管理也是软件测试工程师职业的一个发展方向:测试工程师——业务测试专家/测试咨询专家/用户体验专家/产品设计专家/软件质量管理专家/项目经理。  晋升方法  大厂  如果你是在大厂,了解公司相关晋升制度,寻求晋升机会,与领导或人力资...
            0 0 689
            分享
          • 一、web测试和app测试的相同点和区别?相同点:都离不开测试的基础知识和测试原理。具体包括以下几个方面。测试用例,均使用边界值分析法,等价类划分法等。多数采用黑盒测试,来验证业务功能是否能得到正确的应用。需要检查界面布局,风格,按钮是否美观、简洁,是否统一。测试页面载入和翻页的速度、登录时长、内存是否溢出等。测试应用系统的稳定性。 不同点:相对与web测试来说,app测试要考虑手机本身固有的属性,所以app测试还需要注意以下几点。中断测试(来电去电,短信,蓝牙,NFC支付,闹钟,数据线插拔,锁屏,断电,关机重启等)安装卸载测试(全新安装,新版本覆盖旧版本,卸载旧版本安装新版本,卸载...
            6 7 1379
            分享
          • 读者提问:阿常你好,想请教一下,软件项目的上线有没有标准流程呀 ?阿常回答:有通用的上线发布流程。1、提交测试开发在开发环境自测通过后,撰写上线方案(包括配置文件、应用程序及部署顺序、数据库脚本、规划的上线时间、上线失败回滚步骤,以及涉及服务的影响范围),提交给相关负责人审批,审批通过后提交给测试人员。2、测试验证测试人员在测试环境测试并跟踪修改 BUG 达到上线标准,若达到上线标准,邮件通知开发、产品可以走正式上线流程。(如果有预发布环境的,多走一道预发布环境的测试验证)3、正式上线运维人员执行自动化应用部署,发布完成由运维通知测试、产品及业务进行线上环境的测试验证,如果发现需要紧...
            0 0 1529
            分享
      • 51testing软件测试圈微信