使用python编写简单的关于服务器端网页自动登录及签到的功能

注:仅用于测试人员自动化脚本测试,请勿用于其他用途

-------------------------------------------------------------------------------------

准备工作

1、selenium,控制浏览器的一个插件

使用pip安装selenium: pip install selenium

2、无界面浏览器,即在服务器端启动的没有界面的浏览器

下载无界面谷歌浏览器

 # -*- coding: utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
import time
import os
browerName = "chromedriver"
# 无界面谷歌浏览器所在位置
chromePath =str(os.getcwd())+"\\"+browerName
url="https://xxx.com/auth/login"
email = "your email"
passwd='your passwd'options = webdriver.ChromeOptions()
options.add_argument('window-size=1920x3000')       # 设置浏览器分辨率
options.add_argument('--disable-gpu')               # 谷歌文档提到需要加上这个属性来规避bug
options.add_argument('--hide-scrollbars')           # 隐藏滚动条,应对一些特殊页面
options.add_argument('blink-settings=imagesEnabled=false')      # 不加载图片,提升运行速度
options.add_argument('--headless')                  # 浏览器不提供可视化界面。Linux下如果系统不支持可视化不加这条会启动失败
options.add_argument('--no-sandbox')                # 解决DevToolsActivePort文件不存在的报错
options.add_argument('-enable-webgl')                # 解决DevToolsActivePort文件不存在的报错
#options.add_argument('--disable-dev-shm-usage')       # 设置浏览器分辨率
#options.add_argument('--disable-software-rasterizer')def ChromeOptionsUtil(chromePath):"""谷歌无界面版:param chromePath::return:"""#设置谷歌浏览器的路径s = Service(chromePath)# 第一个参数是谷歌options, 第二个参数是chromedriver的路径,用上面的Service包装driver = webdriver.Chrome(options=options, service=s) #获取urldriver.get(url) #等数秒,浏览器打开和网页跳转需要时间 time.sleep(3) #取ID为txtLoginCode的网页元素(用户名输入元素) elem_user=driver.find_element(By.ID,'email') #清空输入 elem_user.clear() #键入用户名 elem_user.send_keys(email) #取ID为txtPwd的网页元素(密码输入元素) elem_pass=driver.find_element(By.ID,'passwd') #清空输入 elem_pass.clear() #键入密码 elem_pass.send_keys(passwd) #取ID为btnLogin的登录按钮 elem_login=driver.find_element(By.ID,'login') try:#点击登录按钮 elem_login.click() except Exception as e:print('登录失败')"""#跳转到登录跳转的页面,有时单页无跳转登录可能有问题,推荐使用下面循环跳转寻找driver.switch_to.window(driver.window_handles[-1])"""#等待页面跳转加载    print('登录成功')time.sleep(3)#循环所以打开页面,找到跳转页for handle in driver.window_handles:driver.switch_to.window(handle)#找到页面的titleif 'XXX' in driver.title:breakcheckin= driver.find_element(By.ID,'checkin')try:#点击登录按钮 checkin.click() except Exception as e:print('签到失败')#等待签到弹窗time.sleep(3)alert=driver.find_element(By.ID,'result_ok') msg=driver.find_element(By.ID,'msg') #点击按钮alert.click() if alert.text=="签到失败":print('签到失败')print(msg)else:print('成功签到')print(msg)#关闭浏览器,并离开driver.close()driver.quit()return Noneif __name__=="__main__":ChromeOptionsUtil(chromePath)

【python】简单使用selenium编写无界面谷歌浏览器的网页登录和签到功能相关推荐

  1. python脚本自动qq签到_Python爬虫实现自动登录、签到功能 附代码

    这篇文章主要介绍了Python爬虫实现自动登录.签到功能的代码,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前几天在一个素材网站上下载东 ...

  2. python+selenium 浏览器无界面模式运行

    以Chrome浏览器为例: 方法一: from selenium.webdriver import Chrome, ChromeOptionsopt = ChromeOptions() # 创建Chr ...

  3. python打开浏览器不显示浏览器页面_python+selenium 浏览器无界面模式运行

    方法一: from selenium.webdriver import Chrome, ChromeOptions opt = ChromeOptions() # 创建Chrome参数对象 opt.h ...

  4. 爬虫之selenium开启无界面模式

    绝大多数服务器是没有界面的,selenium控制谷歌浏览器也是存在无界面模式的(又称之为无头模式) 开启无界面模式的方法 实例化配置对象 options = webdriver.ChromeOptio ...

  5. selenium操作无界面chrome浏览器

    今天展示一下python操作无界面的chrome浏览器.主要利用selenium 和对应自己电脑上Chrome浏览器版本的webdriver.chrome版本的webdriver下载地址:http:/ ...

  6. 使用selenium启动(无界面)浏览器的隐私模式

    核心代码 options.add_argument("--incognito") # 配置隐私模式 options.add_argument('--headless') # 配置无 ...

  7. selenium配置无界面chrome浏览器

    安装chromedriver请参考:无界面chrome + selenium爬虫 from selenium import webdriver from fake_useragent import U ...

  8. 学习selenium,实现什么值得买自动登录并签到

    最初想分析数据包,用requests加上登录状态的cookies发送请求来实现张大妈的自动签到功能,但怎么也抓不到签到的这个数据包,可能是写进js里了吧,将来再慢慢分析. 正好想学selenium,于 ...

  9. Python编写无界面版打字练习程序

    开学第一课:一定不要这样问老师Python问题 在线开放课程"Python程序设计基础"第7次开课通知 智慧树大学共享课"Python数据分析与数据可视化"20 ...

最新文章

  1. Table嵌套去掉子table的外边框
  2. 山寨版 颈椎病治疗秘籍
  3. 20什么情况下会帮助他人的因素
  4. LeetCode 542. 01 矩阵(BFS DP)
  5. win7登录密码破解工具
  6. 26. JavaScript 计时
  7. Ubuntu 上安装 Node.js
  8. 深入解读Docker底层技术cgroup系列(4)——cgroup子系统cpu
  9. 基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(一)之miscdevice和ioctl
  10. PC端QQ协议解析之0825
  11. 不是 SELECTed 表达式
  12. proxy代理服务器,实现跨域
  13. PyQt4转PyQt5心得
  14. Unity MMO游戏架构设计之角色设计二
  15. 在Python中文件用Feather格式,与 CSV说再见,速度提升 150 倍!
  16. casperjs ajax请求,CasperJs中的sendAJAX数据参数
  17. android 跳转oppo应用中心_安卓市场—OPPO应用市场ASO详解
  18. java8新特性(拉姆达表达式lambda)
  19. 一文学会LaTeX基础
  20. 对数函数定义域和值域_对数函数的定义域、值域、定点

热门文章

  1. 计算机DNS怎么配置,电脑dns地址设置为多少
  2. ILRuntime学习(之四)
  3. Node安装及更换源
  4. RabbitMQ六种工作模式
  5. Undefined、Null和NaN有什么区别?
  6. java技术栈是什么意思?一次认全9大主流技术栈!
  7. $ 8 : gets函数与puts函数
  8. 护眼灯有必要买贵的吗?央视推荐的护眼灯是哪款?
  9. 软考高级信息系统项目管理师系列之九:项目范围管理
  10. 辽宁移动数码S6_S805_RTL8188_线刷固件包