Python 第三方模块之 selenium - 模拟操作 Chrome 浏览器

1、安装selenium

1.1、Python 安装 selenium 模块

pip install selenium

1.2、下载驱动

选择和自己chrom版本相对应的驱动到本地,下载地址

http://npm.taobao.org/mirrors/chromedriver/

2、Python 操作

from selenium import webdriver
import time
import json# 创建Chrome对象,需要先下载驱动。
driver = webdriver.Chrome('D:\home\chrom\chromedriver.exe')     
driver.maximize_window()# 操作这个对象.
driver.get('https://baidu.com')     # get方式访问
time.sleep(5)# 刷新页面
driver.get(driver.current_url)  # 重新获取页面也可以算是刷新
driver.refresh()# 通过 xpath 获取元素
el = driver.find_element_by_xpath("//input[@type='text']")
# 输入
el.send_keys('***********')# 通过 id 获取元素
el = driver.find_element_by_id("submit-login")
# 点击
el.click()# 通过 class_name 获取元素
el = driver.find_element_by_class_name("shadow-close")
el.click()# 获取网站cookie
diccookie=driver.get_cookies()
fw=open('cookie.txt','w')
json.dump(diccookie,fw)
fw.close()# 使用 cookie
fr=open('cookie.txt','r')
cookielist=json.load(fr)
fr.close()
for cookie in cookielist:driver.add_cookie(cookie)# 保存截图到本地
driver.get_screenshot_as_file('foo.png')# 滚动到浏览器顶部
js_top = "var q=document.documentElement.scrollTop=0"
# 滚动到浏览器底部
js_bottom = "var q=document.documentElement.scrollTop=10000"
js_bottom2 = "window.scrollTo(0,document.body.scrollHeight)"
# 应用js
driver.execute_script(js_top)# 使用完, 记得关闭浏览器, 不然chromedriver.exe进程为一直在内存中.
driver.quit()   

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/453841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jupyter notebook代码导出_Jupyter Notebook导出包含中文的pdf_亲测有效

Jupyter Notebook是很好的数据科学创作环境,是非常方便的Python代码编辑器。jupyter提供导出的格式有.py、.html、.md、.pdf等。目前用其导出包含中文的pdf会遇到很多坑,网上也有一些解决方案,大致分为两种方式,一是安装 pandoc并…

前端之使用 POST 提交数据并跳转

GET 方式 window.location.href是我们常用来在js中实现页面跳转的方法,这是使用get方式发送请求,示例如下 window.location.href url;优点是简单易用,缺点是如果有参数的话,参数会暴露在url地址中,这降低了系统的安…

cef js返回c++的代码_CEF3开发者系列之外篇——IE中JS与C++交互

使用IE内核开发客户端产品,系统和前端页面之间的交互,通常给开发和维护带来很大的便利性。但操作系统和前端之间的交互却是比较复杂的。具体来说就是脚本语言和编译语言的交互。在IE内核中html和css虽然不兼容,但是IE编程接口是完全一样的,这得益于微软的…

多线程编程指南 part 2

多线程编程指南Sun Microsystems, Inc.4150 Network CircleSanta Clara, CA95054U.S.A.文件号码819–7051–102006 年10 月版权所有2005 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA95054 U.S.A. 保留所有权利。本文档及其相关产品的使用、复制、分发和反编译…

00030_ArrayList集合

1、数组可以保存多个元素,但在某些情况下无法确定到底要保存多少个元素,此时数组将不再适用,因为数组的长度不可变 2、JDK中提供了一系列特殊的类,这些类可以存储任意类型的元素,并且长度可变,统称为集合 3…

1.3tf的varible\labelencoder

1.tf的varible变量 import tensorflow as tf #定义变量--这里是计数的变量 statetf.Variable(0,namecounter) print (state.name) #输出变量值 onetf.constant(1) #常量new_valuetf.add(state,one) updatetf.assign(state,new_value)#初始化所有变量 inittf.initialize_all_var…

kafka 日志相关配置

日志目录 ${kafka.logs.dir}/server.log :服务器日志${kafka.logs.dir}/state-change.log:状态变化日志${kafka.logs.dir}/kafka-request.log:请求处理日志${kafka.logs.dir}/log-cleaner.log:日志清理${kafka.logs.dir}/control…

linux mc服务器 mod_如何在linux搭建MC服务器

摘要:前言Q:为什么要用linux搭建MC服务器?A:因为linux系统占用率低,跑服务器效果非常好Q:看不懂linux ssh,后期自己无力运维怎么办A:没关系,这个教程是通过安装BT...前言…

flask-SQLAlchemy 使用 session.commit() 处理异常回滚

最为原始的try/except办法,多次插入数据就要写多次,很麻烦,使用python原生的contextlib.contextmanager简化代码! try:user_db User(emailself.email, nicknameself.nickname, passwordself.password)db.session.add(user_db)#所…

小米机器人清理主刷和轴承_扫地机主刷怎样更换

原标题:扫地机主刷怎样更换随着电动扫地机逐渐取代手动清洁,电动扫地机的工作量不断增加,从而导致主刷磨损更加严重,并增加了主刷更换的次数。因此,伟顿在这里告诉大家扫地机主刷怎样更换:1 .首先&#xff…

多线程编程指南

1. 多线程编程指南1--线程基础 线程编程指南1--线程基础 Wednesday, 29. March 2006, 11:48:45 多线程 本文出自:BBS水木清华站 作者:Mccartney (coolcat) (2002-01-29 20:25:25) multithreading可以被翻译成多线程控制。与传统的UNIX不同,一个传统 的UNIX进…

路由器和猫的区别

路由器和猫的区别 网络在我们现在生活中必不可少,我们链接互联网经常需要用到猫和路由器,但是依然有很多菜鸟根本不知道什么是猫什么是路由器,至于猫和路由器怎么使用就更不知道了,下面给大家详细的讲解下路由器和猫的区别。 路由器和猫的用途和链接位置不一样,如下图: 路由器:…

Docker 精通之 docker-compose

1、Docker-compose简介 1.1、ocker-compose简介 Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。   Docker-Compose将所管理的容器分为三层,分别是工程(project),服务&#xff08…

json数据格式 穗康码_Json数据格式

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。JSON 比 XML 更小、更快,更易解析。JSON建构于两种结…

Linux 系统版本查询

显示Linux版本信息输入"cat /proc/version",说明正在运行的内核版本。输入"cat /etc/issue", 显示的是发行版本信息。输入"lsb_release -a ",可对多个linux版本适用。输入"uname -a ",可显示电脑以及操作系统的相关信息。转载于:https…

kafka 命令行命令大全

kafka 脚本 connect-distributed.sh connect-mirror-maker.sh connect-standalone.sh kafka-acls.sh kafka-broker-api-versions.sh kafka-configs.sh kafka-console-consumer.sh kafka-console-producer.sh kafka-consumer-groups.sh kafka-consumer-perf-test.sh kafka-dele…

kotlin将对象转换为map_Kotlin程序将哈希映射(HashMap)转换为列表(List)

Kotlin程序将哈希映射(HashMap)转换为列表(List)在此程序中,您将学习在Kotlin中将map转换为列表的不同方法。示例:将map转换为列表示例import java.util.ArrayListimport java.util.HashMapfun main(args: Array) {val map HashMap()map.put(1, "a…

零元学Expression Blend 4 - Chapter 4元件重复运用的观念

零元学Expression Blend 4 - Chapter 4元件重复运用的观念 原文:零元学Expression Blend 4 - Chapter 4元件重复运用的观念本章将教大家Blend元件重复运用的观念,这在Silverlight设计中是非常重要的,另外加码赠送渐层工具(Gradient Tool)。 ? 本章将教…

Python 内置模块之 ConfigParser - 解析 ini 文件

ini配置文件是被configParser直接解析然后再加载的,如果只是修改配置文件,并不会改变已经加载的配置 INI文件结构简单描述 INI文件就是扩展名为“ini”的文件。在Windows系统中,INI文件是很多,最重要的就是“System.ini”、“Sy…

电脑老是弹出vrvedp_m_出现三个可疑进程vrvedp_m.exe vrvrf_c.exe vrvsafec.exe

满意答案 你机器里装了北信源的DeviceRegist软件,这个软件不是杀毒软件或者防毒软件,而是一个远程桌面管理软件。这类软件其实和木马程序原理上一样,只不过是正规软件公司开发的,但是流氓程度不容小觑,即使在安全模式下也会加载vrvrf_c.exe,vrvedp_m.exe,vrvsafec.exe,wat…