Selenium常用命令(python版)

news2025/1/18 10:09:01

日升时奋斗,日落时自省 

目录

1、Selenium

2、常见问题


1、Selenium

安装Python和配置环境没有涉及

注:如有侵权,立即删除

首先安装selenium包,安装方式很简单 pip install selenium 

注:我这里已经安装好了,所以没有显示安装过程,没有配置环境的安装会比较慢,可以自行网上找教程

安装好以后:

直接上手代码: selenium4版本的这里By需要我们去导包By的包,alt+enter快捷导包方便您一步到位

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

# 创建驱动连接  如果这部分报错 大部分情况驱动版本和浏览器版本是不一致的
driver=webdriver.Chrome()
# 这里给友友们提供一个 用来测试网页 仅仅提供简单测试
driver.get("https://www.saucedemo.com/")

#selenium4 版本之后对于之前的 find_element_by_id这种类型是不兼容的
#现在find_element方法包含两个参数 我们比较常用就是 By.CSS_SELECTOR 类型 XPATH类型
#  以By.CSS_SELECTOR形式获取 用户元素 
element1=driver.find_element(By.CSS_SELECTOR, "#user-name")
# 返回元素 可以进输入内容  以下是输入内容
element1.send_keys("standard_user")
time.sleep(1)
#使用 XPATH 形式获得 元素 
element2=driver.find_element(By.XPATH, "//*[@id='password']")
element2.send_keys("secret_sauce")
time.sleep(1)
element3=driver.find_element(By.ID,"login-button")
#针对获取的元素进行点击
element3.click()
time.sleep(1)
element4=driver.find_element(By.ID,"react-burger-menu-btn")
element4.click()
# element5=driver.find_element(By.CSS_SELECTOR,"#about_sidebar_link")
# element5.click()
#窗口最大化 也就是全屏
driver.maximize_window()
time.sleep(1)
#不喜欢的友友 也可以使用自己喜欢窗口大小
# driver.set_window_size(1366,768)

time.sleep(3)
driver.quit()

 注:selenium4版本兼容不了find_element_by_id这类型方法注意使用以上方法的进行元素获取

以下是比较常用的四个方法(两个参数哈)

driver.find_element(By.XPATH,'XPATH')   #路径方法进行获取
driver.find_element(By.CLASS_NAME,'CLASS_NAME')   #类获取元素
driver.find_element(By.CSS_SELECTOR,'CSS_SELECTOR')  #css选择器获取
driver.find_element(By.ID,'ID')   # id获取元素

如何获取参数:F12 获取元素 先找到元素的位置,右击-》复制-》选择你使用元素获取方式

注:selenium4使用是比较简单的,希望看到这里能帮你快速上手

2、常见问题

(1)浏览器驱动------浏览器版本上是一致的,不一致会报错

(2)有时候获取元素的时候,友友可能觉得复制过来的css或者xpath都是对的但是就是获取不到

暂时我发现的有两个问题:

I  :  html没有加载出来需要稍微缓冲一下(但是此时就需要考虑为什么会这么慢了)

缓冲的等待固定时间time.sleep(3)  表示等待3秒,以秒为单位

II :窗口大小比较小,所以此时可以尝试窗口最大化尝试获取元素是否可以

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

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

相关文章

spring boot集成Knife4j

文章目录 一、Knife4j是什么?二、使用步骤1.引入依赖2.新增相关的配置类3.添加配置信息4.新建测试类5. 启动项目 三、其他版本集成时常见异常1. Failed to start bean ‘documentationPluginsBootstrapper2.访问地址后报404 一、Knife4j是什么? 前言&…

弘君资本股市行情:股指预计保持震荡上扬格局 关注汽车、银行等板块

弘君资本指出,近期商场体现全体分化,指数层面上看,沪指一路震动上行,创出年内新高,创业板指和科创50指数体现相对较弱,依然是底部震动走势。从盘面体现上看,轮动依然是当时商场的主基调&#xf…

逻辑分析仪 - 采样率/采样深度

采样深度(Sampling Depth) 采样深度指的是逻辑分析仪在一次捕获过程中可以记录的最大样本数量。简单来说,采样深度越大,逻辑分析仪可以记录的数据量就越多。这对于分析长时间的信号变化或复杂的信号序列非常重要。 采样率&#…

WEB攻防【2】——ASPX/.NET项目/DLL反编译/未授权访问/配置调试报错

ASP:windowsiisaspaccess .net:windowsiisaspxsqlserver IIS上的安全问题也会影响到 WEB漏洞:本身源码上的问题 服务漏洞:1、中间件 2、数据库 3、第三方软件 #知识点: 1、.NET:配置调试-信息泄绵 2、.NET:源码反编译-DLL…

使用Flask ORM进行数据库操作的技术指南

文章目录 安装Flask SQLAlchemy配置数据库连接创建模型类数据库操作插入数据查询数据更新数据删除数据 总结 Flask是一个轻量级的Python Web框架,其灵活性和易用性使其成为开发人员喜爱的选择。而ORM(对象关系映射)则是一种将数据库中的表与面…

HCIP-Datacom-ARST自选题库__OSPF单选【80道题】

1.OSPFV2是运行在IPV4网络的IGP,OSPFV3是运行在IPV6网络的ICP,OSPFV3与OSPFv2的报文类型相同,包括Hello报文、DD报文、LSR报文、LSU报文和LSAck报文。关于OSPFv3报文,以下哪个说法是正确的 OSPFv3使用报文头部的认证字段完成报文…

揭秘齿轮加工工艺的选用原则:精准打造高效传动的秘密武器

在机械制造领域,齿轮作为传动系统中的重要组成部分,其加工工艺的选择至关重要。不同的齿轮加工工艺会影响齿轮的精度、耐用性和效率。本文将通过递进式结构,深入探讨齿轮加工工艺的选用原则,带您了解如何精准打造高效传动的秘密武…

最简单的 UDP-RTP 协议解析程序

最简单的 UDP-RTP 协议解析程序 最简单的 UDP-RTP 协议解析程序原理源程序结果下载链接参考 最简单的 UDP-RTP 协议解析程序 本文介绍网络协议数据的处理程序。网络协议数据在视频播放器中的位置如下所示。 本文中的程序是一个 UDP/RTP 协议流媒体数据解析器。该程序可以分析 …

Java | Leetcode Java题解之第109题有序链表转换二叉搜索树

题目: 题解: class Solution {ListNode globalHead;public TreeNode sortedListToBST(ListNode head) {globalHead head;int length getLength(head);return buildTree(0, length - 1);}public int getLength(ListNode head) {int ret 0;while (head…

彩虹聚合二级域名DNS管理系统源码v1.3

聚合DNS管理系统可以实现在一个网站内管理多个平台的域名解析, 目前已支持的域名平台有:阿里云、腾讯云、华为云、西部数码、CloudFlare。 本系统支持多用户,每个用户可分配不同的域名解析权限;支持API接口, 支持获…

结合反序列化注入tomcat内存马

0x01 前提概述 通过前几个内存马的学习我们可以知道,将内存马写在jsp文件上传并不是传统意义上的内存马注入,jsp文件本质上就是一个servlet,servlet会编译成class文件,也会实现文件落地。借用木头师傅的一张图 结合反序列化注入内…

​​​【收录 Hello 算法】10.1 二分查找

目录 10.1 二分查找 10.1.1 区间表示方法 10.1.2 优点与局限性 10.1 二分查找 二分查找(binary search)是一种基于分治策略的高效搜索算法。它利用数据的有序性,每轮缩小一半搜索范围,直至找到目标元素或搜索区间为空…

Python | Leetcode Python题解之第110题平衡二叉树

题目: 题解: class Solution:def isBalanced(self, root: TreeNode) -> bool:def height(root: TreeNode) -> int:if not root:return 0leftHeight height(root.left)rightHeight height(root.right)if leftHeight -1 or rightHeight -1 or a…

【论文笔记】| 定制化生成PuLID

PuLID: Pure and Lightning ID Customization via Contrastive Alignment ByteDance, arXiv:2404.16022v1 Theme: Customized generation 原文链接:https://arxiv.org/pdf/2404.16022 Main Work 提出了 Pure 和 Lightning ID 定制 (PuLID),这是一种用于…

Golang | Leetcode Golang题解之第109题有序链表转换二叉搜索树

题目: 题解: var globalHead *ListNodefunc sortedListToBST(head *ListNode) *TreeNode {globalHead headlength : getLength(head)return buildTree(0, length - 1) }func getLength(head *ListNode) int {ret : 0for ; head ! nil; head head.Next…

数据分析【方差分析】四

方差分析的核心 什么是方差分析:方差分析是假设检验的一种延续与扩展,主要用于多个总体均值(三组或三组以上均值)是否相等做出假设检验,研究分类型自变量对数值型因变量的影响。 它的零假设和设备假设分别为: 单因素方差分析的前提条件 独立性 组内独立(随机抽样、…

618购物节快递量激增,EasyCVR视频智能分析助力快递网点智能升级

随着网络618购物节的到来,物流仓储与快递行业也迎来业务量暴增的情况。驿站网点和快递门店作为物流体系的重要组成部分,其安全性和运营效率日益受到关注。为了提升这些场所的安全防范能力和服务水平,实施视频智能监控方案显得尤为重要。 一、…

大语言模型实战——最小化agent

1. agent是什么 大模型拥有语言理解和推理能力后,就相当于拥有了大脑,要让模型发挥更大的潜力,就需要给它安装上手臂,让它拥有行动的能力。 而Agent就是一个将语言模型和外部工具结合起来的智能体,它使用语言模型的推…

AutosarMCAL开发——基于TC367、EBTresos 开发之PORT

目录 1. Port模块基础知识2.TC3x系列Port架构3.EB配置(基于EB23 TC367)4.总结 1. Port模块基础知识 输入模式: 上拉输入:默认情况下,引脚为高电平,通过上拉电路将信号拉高,然后通过TTL肖特基触…

汇智知了堂走进四川工商职业技术学院,赋能学生电商实战技能

5月17日,汇智知了堂作为业界知名的教育机构,走进四川工商职业技术学院,为该校学生带来了一场别开生面的产品拍摄培训。此次培训旨在提升学生们的电商实战技能,帮助他们更好地适应电商行业的快速发展。 在培训现场,汇…