【python】简单使用selenium编写无界面谷歌浏览器的网页登录和签到功能
使用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编写无界面谷歌浏览器的网页登录和签到功能相关推荐
- python脚本自动qq签到_Python爬虫实现自动登录、签到功能 附代码
这篇文章主要介绍了Python爬虫实现自动登录.签到功能的代码,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 前几天在一个素材网站上下载东 ...
- python+selenium 浏览器无界面模式运行
以Chrome浏览器为例: 方法一: from selenium.webdriver import Chrome, ChromeOptionsopt = ChromeOptions() # 创建Chr ...
- python打开浏览器不显示浏览器页面_python+selenium 浏览器无界面模式运行
方法一: from selenium.webdriver import Chrome, ChromeOptions opt = ChromeOptions() # 创建Chrome参数对象 opt.h ...
- 爬虫之selenium开启无界面模式
绝大多数服务器是没有界面的,selenium控制谷歌浏览器也是存在无界面模式的(又称之为无头模式) 开启无界面模式的方法 实例化配置对象 options = webdriver.ChromeOptio ...
- selenium操作无界面chrome浏览器
今天展示一下python操作无界面的chrome浏览器.主要利用selenium 和对应自己电脑上Chrome浏览器版本的webdriver.chrome版本的webdriver下载地址:http:/ ...
- 使用selenium启动(无界面)浏览器的隐私模式
核心代码 options.add_argument("--incognito") # 配置隐私模式 options.add_argument('--headless') # 配置无 ...
- selenium配置无界面chrome浏览器
安装chromedriver请参考:无界面chrome + selenium爬虫 from selenium import webdriver from fake_useragent import U ...
- 学习selenium,实现什么值得买自动登录并签到
最初想分析数据包,用requests加上登录状态的cookies发送请求来实现张大妈的自动签到功能,但怎么也抓不到签到的这个数据包,可能是写进js里了吧,将来再慢慢分析. 正好想学selenium,于 ...
- Python编写无界面版打字练习程序
开学第一课:一定不要这样问老师Python问题 在线开放课程"Python程序设计基础"第7次开课通知 智慧树大学共享课"Python数据分析与数据可视化"20 ...
最新文章
- Table嵌套去掉子table的外边框
- 山寨版 颈椎病治疗秘籍
- 20什么情况下会帮助他人的因素
- LeetCode 542. 01 矩阵(BFS DP)
- win7登录密码破解工具
- 26. JavaScript 计时
- Ubuntu 上安装 Node.js
- 深入解读Docker底层技术cgroup系列(4)——cgroup子系统cpu
- 基于OMAPL138的Linux字符驱动_GPIO驱动AD9833(一)之miscdevice和ioctl
- PC端QQ协议解析之0825
- 不是 SELECTed 表达式
- proxy代理服务器,实现跨域
- PyQt4转PyQt5心得
- Unity MMO游戏架构设计之角色设计二
- 在Python中文件用Feather格式,与 CSV说再见,速度提升 150 倍!
- casperjs ajax请求,CasperJs中的sendAJAX数据参数
- android 跳转oppo应用中心_安卓市场—OPPO应用市场ASO详解
- java8新特性(拉姆达表达式lambda)
- 一文学会LaTeX基础
- 对数函数定义域和值域_对数函数的定义域、值域、定点