Python|爬虫和测试|selenium框架模拟登录示例(一)

news2024/11/16 23:52:50

前言:
上一篇文章
Python|爬虫和测试|selenium框架的安装和初步使用(一)_晚风_END的博客-CSDN博客 大概介绍了一下selenium的安装和初步使用,主要是打开某个网站的主页,基本是最基础的东西,那么,这篇文章里就写一点更加深入的东西吧。

主要是介绍比如,selenium网页刷新,模拟登录csdn,元素定位等等内容

一,

无头浏览器

什么是无头浏览器呢?其实就是selenium后台启动一个浏览器,该浏览器看不到,以节约测试用机的资源。

options.add_argument("headless")主要是这个,其次是截图,截图保存在了d盘,否则不知道是否确实运行了

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
driver.get_screenshot_as_file('d:\\截图.png')

 

 

二,

刷新页面

关闭无头,以在前台观察是否确实刷新,增加刷新代码,主要是driver.refresh()方法

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

执行完毕后,cmd的截图:

表明确实刷新了页面

 三,

csdn首页输入框输入指定字符

 

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

print(driver.page_source)
driver.find_element(By.XPATH,'//*[@id="toolbar-search-input"]').send_keys('fuck')

运行结果如下:

 四,

点击搜索

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

print(driver.page_source)
driver.find_element(By.XPATH,'//*[@id="toolbar-search-input"]').send_keys('fuck')
driver.find_element(By.XPATH,'//*[@id="toolbar-search-button"]').click()

网页源代码内相关内容如下:

 运行结果如下:

说我没有登录,OK,这就登录一下 

五,

selenium登录csdn

#codding=utf-8
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
options = Options()
options.binary_location = "C:\\Users\\Administrator\\Desktop\\chrome\\Chrome-bin\\chrome.exe"
options.add_experimental_option("detach", True)
#options.add_argument("headless")
path=Service('f:\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=path)
# 截图预览

driver.get("https://www.csdn.net")
time.sleep(2)


driver.get_screenshot_as_file('d:\\截图.png')
try:
    # 刷新页面
    driver.refresh()  
    print('刷新页面')
except Exception as e:
    print('刷新失败')

print(driver.page_source)
driver.find_element(By.XPATH,'//*[@id="toolbar-search-input"]').send_keys('fuck')
#driver.find_element(By.XPATH,'//*[@id="toolbar-search-button"]').click()
login=driver.find_element(By.XPATH, "//*[@class='toolbar-btn-loginfun']")
#login=driver.find_element_by_class_name('toolbar-btn-loginfun')
login.click()

网页源代码相关内容如下:

 运行效果如下:

 未完待续!!!!

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

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

相关文章

C++ 网络编程项目fastDFS分布式文件系统(八)--

目录 1 程序中的相关协议 1 程序中的相关协议 1. 注册 客户端 // url http: //127.0.0.1:80/reg // post 数据格式 { userName:xxxx, nickName:xxx, firstPwd:xxx, phone:xxx, email:xxx } 服务器 成功 {"code":"002"} 该用户已存在 {&q…

Mysql45讲学习笔记

前言:这篇文章主要总结事务,锁、索引的一些知识点,然后分享一下自己学习小心得,我会从点到线在到面展开说说,对于学习任何知识,我们都应该藐其全貌,不要一开始就选入细节 基础 一、基础架构&a…

4.Redis数据类型的编码方式

数据结构和内部编码 type 命令实际返回的就是当前键的数据结构类型,它们分别是:string(字符串)、list(列表)、hash(哈希)、set(集合)、zset(有序…

kali安装Hashpump(简单无比)

安装 OpenSSL 开发库: sudo apt-get update sudo apt-get install libssl-dev克隆 Hashpump 仓库 git clone https://github.com/bwall/HashPump.git进入 HashPump 目录 cd HashPump编译并安装 Hashpump make sudo make install使用 Hashpump 工具: …

OLED透明屏拼接:创造更大尺寸的显示区域,提供更广阔的视觉体验

OLED透明屏拼接是一项创新技术,可以实现更大尺寸的显示区域和更加连续和流畅的画面效果,为广告、商场、零售、智能家居等领域提供更多的创意和可能。 下面将详细介绍OLED透明屏拼接的原理、优势、应用领域,希望看后对您了解OLED透明屏有所帮…

WPF怎么实现文件拖放功能winform怎么实现拖拽功能

WPF怎么实现文件拖放功能winform怎么实现文件拖拽功能,在管理员模式下wpf winform怎么实现文件的拖拽功能 WPF实现文件拖放功能,正常情况并没有什么问题,但是如果你的程序使用管理员身份启动,你就会发现文件拖放功能就会失效。同…

捕鱼船识别检测算法

捕鱼船识别检测预警系统通过yolov5python网络模型图像识别分析技术,捕鱼船识别检测预警算法利用河道两岸的摄像头实时监测水域中的捕鱼船活动,一旦系统识别到违规捕捞行为,立即发出预警信号,立即发出预警信号,确保及时…

Abaqus软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Abaqus是一款专业的有限元分析软件,广泛应用于工程领域,特别是机械、汽车、航空航天、材料科学等领域。它具有强大的有限元分析功能,可以模拟各种复杂的物理和力学问题,为工程师提…

openCV实战-系列教程8:直方图与傅里叶变换(直方图定义/均衡化原理/均衡化效果/傅里叶概述/频域变换结果/低通与高通滤波)、原理解析、源码解读

打印图像直接用这个函数: import cv2 #opencv读取的格式是BGR import numpy as np import matplotlib.pyplot as plt#Matplotlib是RGB %matplotlib inline def cv_show(img,name):cv2.imshow(name,img)cv2.waitKey()cv2.destroyAllWindows()1、直方图 1.1 基本定义…

开源软件的崛起:历史与未来

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

VictoriaLogs:一款超低占用的 ElasticSearch 替代方案

image.png 背景 前段时间我们想实现 Pulsar 消息的追踪流程,追踪实现的效果图如下: 实现其实比较简单,其中最重要的就是如何存储消息。 消息的读取我们是通过 Pulsar 自带的 BrokerInterceptor 实现的,对这个感兴趣的朋友后面会单…

Harbour.Space Scholarship Contest 2023-2024 (Div. 1 + Div. 2) A ~ D

比赛链接 A 正常枚举就行&#xff0c;从最后一位往前枚举&#xff0c;-1、-2、-3...这样 #include<bits/stdc.h> #define IOS ios::sync_with_stdio(0);cin.tie(0);cout.tie(0); #define endl \nusing namespace std;typedef pair<int, int> PII; typedef long l…

开源软件的可访问性:让技术更加包容

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Pico如何使用C/C++选择哪个I2C控制器,以及SDA和SCL针脚

本文一开始讲述了解决方案&#xff0c;后面是我做的笔记&#xff0c;用来讲述我的发现流程和探究的 Pico I2C 代码结构。 前提知识 首先要说明一点&#xff1a;Pico 有两个 I2C&#xff0c;也就是两套 SDA 和 SCL。这点你可以在针脚图中名字看出&#xff0c;比如下图的 Pin 4…

【CHI】(十四)Link Handshake

1.Link layer Credit 本节介绍了链接层信用证&#xff08;L-Credit&#xff09;机制。信息通过使用L-Credit在接口通道传输。要将一个flit从 Transmitter传输到Receiver&#xff0c;Transmitter必须获得L-Credit。 1.1L-Credit flow control 通过将LCRDV信号置起&#xff0c;…

聊聊近况,一个字【累】

首发博客地址 https://blog.zysicyj.top/ 1 最近生活状态真的是一团糟呀&#xff0c;我们家是承包了二十亩葡萄园的&#xff0c;但是只有我爸妈忙活&#xff0c;今年还好我小舅在这边帮忙&#xff0c;不然我的时间还要被压缩的更厉害&#xff0c;写博客学习那肯定是不敢想的了。…

MacOS goland go1.21 debug问题

安装dlv brew install dlv 安装之后在终端会显示所在目录 类似/usr/local/Cellar/delve/1.21.0/bin 配置goland 在文件系统中找到goland 右击选择show package contents -> Contents -> plugins -> go 尝试替换 其中对应系统 的 dlv 结果还是不行 然后打开应用gol…

汤普森采样(Thompson sampling): Beta分布直观理解(可视化)

本文是博客《汤普森采样(Thompson sampling):理论支持》得附录&#xff0c;进一步理解直观理解Beta分布。 1、曝光(αβ)比较大&#xff0c;且点击(α)比较好的情况&#xff0c;可见现在返回的值大部分在0.8左右。 2、曝光(αβ)比较大&#xff0c;且点击(α)比较小的情况&am…

C++数据结构学习——栈

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、栈二、C语言实现1.声明代码2.实现增删查改代码3.测试代码 总结 前言 栈&#xff08;Stack&#xff09;是计算机科学中一种常见的数据结构&#xff0c;它是…

系统架构设计、Linux、 C++、Java、Python、Andorid、iOS等技术笔记目录分享 - 最全讲解

架构设计师应具备的专业素质&#xff1a; 掌握业务领域的知识、掌握技术知识、掌握设计技能、掌握编程技能、具备沟通能力、具备决策能力、知道组织策略、应是谈判专家。 →点击 笔者主页&#xff0c;欢迎关注哦&#xff08;互相学习&#xff0c;共同成长&#xff09; 笔者看…