selenium +chromdriver模块
1 selenium
模拟浏览器行为
2 chromdriver 对应的chrome浏览器驱动 下载地址

注意:chrome与chromdriver存在对应关系
以下错误就可能是版本不对应导致


简单的示例
131专用 此处指定的是2台不同电脑
"""
Description:网强自动登录脚本
Author:Nod
Date:18-05-03
Record:1 关键在于chrome的driver要与chrome的版本相对应
#---------------------------------v1-----------------------------------#
"""
from selenium import webdriver
import requests
import time
from selenium.webdriver.common.by import By #按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys #键盘按键操作
driver=webdriver.Chrome() #弹出浏览器
time.sleep(1)
driver.get('http://172.20.90.114:8080/StormWeb/')
time.sleep(1)
#将浏览器最大化操作
driver.maximize_window()
#获取输入用户名的地方
input_loginName=driver.find_element_by_id('loginName')
#清掉原先的内容
input_loginName.clear()
#输入用户名
input_loginName.send_keys('admin')
#获取密码
input_pwd=driver.find_element_by_id('pwd')
#输入密码
input_pwd.send_keys('nstrong')
#输入回车
input_pwd.send_keys(Keys.ENTER)
#等待8s 给浏览器解析时间
time.sleep(8)
#如果不需要打开拓扑就将下面一段代码注释
#driver.find_element_by_id('shutter4').click() #[0].click()
244专用
"""
Description:网强自动登录脚本
Author:Nod
Date:18-05-03
Record:1 关键在于chrome的driver要与chrome的版本相对应
#---------------------------------v1-----------------------------------#
"""
from selenium import webdriver
import requests
import time
from selenium.webdriver.common.by import By # 按照什么方式查找,By.ID,By.CSS_SELECTOR
from selenium.webdriver.common.keys import Keys # 键盘按键操作 driver = webdriver.Chrome() # 弹出浏览器
time.sleep(1)
driver.get('http://172.20.90.114:8080/StormWeb/')
time.sleep(1)
# 将浏览器最大化操作
driver.maximize_window()
# 获取输入用户名的地方
input_loginName = driver.find_element_by_id('loginName')
# 清掉原先的内容
input_loginName.clear()
# 输入用户名
input_loginName.send_keys('admin')
# 获取密码
input_pwd = driver.find_element_by_id('pwd')
# 输入密码
input_pwd.send_keys('nstrong')
# 输入回车
input_pwd.send_keys(Keys.ENTER)
# 等待8s 给浏览器解析时间
time.sleep(8)
# 打开拓扑
driver.find_element_by_id('shutter4').click() # [0].click()
现在有个情况;我个人坚持的观点是;Python程序写好了,但是客户机没有开发环境;简单的说就是没有开发环境;我们不能要求客户机新增python环境;
为了解决这一方法;我们常用pyinstaller打包工具
进行打包;pyinstaller的详细使用
那么针对此程序中需要调动chromdriver;我们之前默认是将chromdriver放在python安装目录的script下;基于此解决方法是,修改程序部分代码为
#driver = webdriver.Chrome(r'C:\chromedriver\chromedriver_x64.exe')
在c盘创建chromedriver并将驱动放进去;
最后执行pyinstaller打包;整个程序就能运行了;
经测试程序脚本已上线运行
selenium +chromdriver模块的更多相关文章
- python爬虫---单线程+多任务的异步协程,selenium爬虫模块的使用
python爬虫---单线程+多任务的异步协程,selenium爬虫模块的使用 一丶单线程+多任务的异步协程 特殊函数 # 如果一个函数的定义被async修饰后,则该函数就是一个特殊的函数 async ...
- selenium+chromdriver 动态网页的爬虫
# 获取加载更多的数据有 2 种方法# 第一种就是直接找数据接口, 点击'加载更多' 在Network看下, 直接找到数据接口 # 第二种方法就是使用selenium+chromdriver # se ...
- requests+selenium==requestium模块介绍
有时,你可能会在网上实现一些自动化操作.比如抓取网站,进行应用测试,或在网上填表,但又不想使用API,这时自动化就变得很必要.Python提供了非常优秀的Requests库可以辅助进行这些操作.可惜, ...
- selenium===splinter模块和selenium异曲同工
学习文档: http://splinter.readthedocs.io/en/latest/ 安装以后用它来实现163邮箱的登陆操作:*和selenium一样,splinter同样需要对frame进 ...
- selenium===requestium模块介绍
有时,你可能会在网上实现一些自动化操作.比如抓取网站,进行应用测试,或在网上填表,但又不想使用API,这时自动化就变得很必要.Python提供了非常优秀的Requests库可以辅助进行这些操作.可惜, ...
- 浏览器行为模拟之requests、selenium模块
requests模块 前言: 通常我们利用Python写一些WEB程序.webAPI部署在服务端,让客户端request,我们作为服务器端response数据: 但也可以反主为客利用Python的re ...
- 全程干货,requests模块与selenium框架详解
requests模块 前言: 通常我们利用Python写一些WEB程序.webAPI部署在服务端,让客户端request,我们作为服务器端response数据: 但也可以反主为客利用Python的re ...
- 用selenium 模块控制浏览器
11.8 用selenium 模块控制浏览器selenium 模块让Python 直接控制浏览器,实际点击链接,填写登录信息,几乎就像是有一个人类用户在与页面交互.与Requests 和Beautif ...
- selenium python (一) 开发环境搭建
1.工具下载: python工具共包括三个:python.setuptools.pip ² python:http://python.org/getit/ python开发环境: ² se ...
随机推荐
- java接口入参模板化,适用于企业化服务远程调度模板化的场景,接口入参实现高度可配置化
需求:远程服务接口模板化配置提供接入服务 模板接口分为三个模块:功能路由.参数校验.模板入库 路由:这里的实现方式很简单,就是根据业务标识找到对应的处理方法 参数校验: 参数校验这步涉及模板和校验类两 ...
- Linux用户登录记录日志和相关查看命令汇总(转)
# 1 utmp.wtmp.btmp文件 Linux用户登录信息放在三个文件中: 1 /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记 ...
- Failed to process import candidates for configuration class [com.simple.....]
主要原因: 是因为自己定制的starter在打包时(package)用了spring-boot-maven-plugin,即在你的定制starter工程的pom.xml中有如下配置: <buil ...
- java基础---->Serializable的使用
本次讲解中我们建立一个Java的项目去体会一下序列化Serializable的使用,序列化的原理以及序列化的自定义请参见我的另外一篇博客(java高级---->Serializable序列化的源 ...
- UVa 11100 - The Trip, 2007 难度: 0
题目 https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&a ...
- Java删除文件夹和其子文件、文件的拷贝和剪切
1.递归删除目录下的所有文件及子目录下所有文件 //递归删除目录下的所有文件及子目录下所有文件 public static boolean deleteDir(File dir) { if (dir ...
- redis列表操作基本命令
RPUSH:从列表尾部插入一个元素,RPOP:返回列表最后一个元素并从列表删除LPUSH:从列表头部插入一个元素,LPOP:返回列表第一个元素并从列表删除(没看到命名的介绍,个人理解R就是right, ...
- SQL-45 将titles_test表名修改为titles_2017。
题目描述 将titles_test表名修改为titles_2017.CREATE TABLE IF NOT EXISTS titles_test (id int(11) not null primar ...
- Apple IAP Subscriptions
Apple Doc: https://developer.apple.com/library/content/releasenotes/General/ValidateAppStoreReceipt/ ...
- 【转】20-TCP 协议(滑动窗口——基础)
https://blog.csdn.net/q1007729991/article/details/70142341 相信大家都遇到过这样的场景: 同学 Luffy 给你打电话,让你记下一串手机号码, ...