Selenium常用命令(python版)

日升时奋斗,日落时自省 

目录

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.mzph.cn/pingmian/14761.shtml

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

相关文章

怎么一键消除路人?教你三个消除方法

怎么一键消除路人?在数字时代,摄影已成为我们记录生活、表达情感的重要方式。然而,完美的照片背后往往隐藏着一些不那么完美的元素——比如那些不经意间闯入镜头的路人。他们或许只是匆匆过客,但却足以破坏你精心构图的美好瞬间。…

分割文本文件

分割一个.txt文件,可以选择在命令行中使用split指令,或者编写一段脚本进行操作。以下是一个简单的Python脚本来分割文本文件: def split_file(file, lines):# Open source filewith open(file, r) as source:count 0atEOF Falsewhile not …

shell笔记脚本3

执行脚本文件demo2.sh, 观察打印VAR4效果 执行脚本文件后, 在交互式Shell环境打印VAR4, 观察打印VAR4效果 结论 全局变量在当前Shell环境与子Shell环境中可用, 父Shell环境中不可用 小结 自定义变量的分类 自定义局部变量: 就是在一个脚本文件内部使用 var_namevalue 自…

128天的创意之旅:从初心到成就,我的博客创作纪念日回顾

文章目录 🚀机缘:初心的种子——回望创作之旅的启航🌈收获:成长的果实——128天创作之旅的宝贵馈赠❤️日常:创作与生活的交织👊成就:代码的艺术🚲憧憬:未来的蓝图 &…

Mujoco仿真【xml文件的学习 3】

在学习Mujoco仿真的过程中,为了与时俱进,之前的mujoco210版本不再使用,改用了mujoco-3.1.4版本,下面继续mujoco仿真的学习! 先前关于mujoco的学习博客汇总如下: 强化学习:MuJoCo机器人强化学习…

2024最新(PC+WEB+IOS+Android)即时通讯系统客户端仿默往IM源码下载

2024最新(PCWEBIOSAndroid)即时通讯系统客户端仿默往IM源码下载(总大小约2.4G) 系统功能配置灵活、海量并发、稳定可靠、数据安全,2小时快速部署、数据安全、单聊群聊、系统通知等通信功能,支持App、PC、Web等多端快速接入。 群功能&#xf…

Linux 软件包管理器 yum的下载、功能介绍及使用

🪐🪐🪐欢迎来到程序员餐厅💫💫💫 主厨:邪王真眼 主厨的主页:Chef‘s blog 所属专栏:青果大战linux 总有光环在陨落,总有新星在闪烁 Linux下的三种软件安装方…

panic对defer语句的执行的影响

1.主线程中的panic会直接导致所有正在运行的go协程无法执行,还会导致声明在它之后的defer语句无法执行。 package mainimport ("fmt""time" )func main() {defer fmt.Println("defer1") //声明在panic之前的defer会执行go func() {defer fmt.Pri…

蓝桥杯Web开发【大赛大纲】15届

一、 组别 Web应用开发分为:大学组和职业院校组。 每位选手只能申请参加其中一个组别的竞赛。各个组别单独评奖。 研究生和本科生只能报大学组。 其它高职高专院校可自行选择报任意组别。 二. 竞赛赛程 省赛时长:4小时。 决赛时长:4小…

LeetCode:279.完全平方数

class Solution:def numSquares(self, n: int) -> int:dp[i for i in range(n1)]for i in range(2,n1):for j in range(1,int(i**(0.5))1):dp[i]min(dp[i],dp[i-j*j]1)return dp[-1]代码解释 初始化 DP 数组: dp [i for i in range(n1)] 这里,dp[i]…

五分钟”手撕“图书管理系统

前言: 图书馆管理系统需要结合JavaSE的绝大部分知识,是一个很好的训练项目。 为了让大家更加方便的查阅与学习,我把代码放开头,供大家查询。 还有对代码的分析,我将以类为单位分开讲解。 目录 全部代码 Main类 Us…

如何排查hpet导致的CPU高负载——《OceanBase诊断系列》之十

1. 前言 我在OceanBase问答社区协助用户排查了一个CPU占用率过高的问题,帖子原文是: 《刚刚新安装的OceanBase集群,没有任何数据,CPU占用非常高,这正常吗?》。从这个场景出发,来分享相关的诊断…

Rabbitmq-Windows 安装

第一步:下载并安装erlang 1.原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang 2.下载地址:http://www.erlang.org/downloads 3.双击,点next就可以 4.选…

Android 观察者模式(OBSERVER)应用详解

文章目录 1、观察者模式设计初衷1.1. 解耦对象之间的依赖关系1.2. 允许动态的依赖关系1.3. 自动通知和更新1.4 设计初衷的详细说明1. 对象之间的解耦2. 动态依赖关系3. 自动更新 2、实现细节2.1. Subject 接口和实现2.2. Observer 接口和实现2.3. 主类 3、主要角色4、关系示意图…

【minio】minio文件访问不到问题记录

问题描述: 项目上上传了logo,但是无法回写logo,但是文件minio路径已经返回,并且到minio服务器上也能下载文件; 解决方案: 1.排查Nginx的代理的minio是否正确 2.登录minio服务查一下文件路径policy是否设置访…

AI预测福彩3D采取888=3策略+杀断组+杀和尾缩水测试5月24日预测第1弹

哈喽,各位亲爱的小伙伴,在发布本期预测结果之前,先对最近的这套算法测试做一下总结。 最近的一套算法采用了88723的容差策略,关于容差策略相信大家都比较清楚:容差可以最大限度的保证初始大底中包含中奖号码&#xff0…

揭秘Python:对象类型打印

哈喽,大家好,我是木头左! 一、Python数据类型简介 在Python的世界中,了解你正在处理的数据类型是至关重要的。Python提供了多种内置数据类型,包括数字(整数和浮点数)、字符串、列表、元组、字典…

解决:error: failed to push some refs to ‘https://gitee.com/***/***.git‘(高效快速)

解决方案: git pull --rebase origin master 具体原因: 主要原因是gitee(github)中的README.md文件不在本地代码目录中 要执行git pull --rebase origin master命令将README.md拉到本地 然后就可以执行git push啦 写在最后: 要是问题得到…

51-指针_野指针,指针运算

51-1 野指针 51-1-1 什么是野指针 概念:野指针就是指针指向的位置是不可知的(随机的、不正确的、没有明确限制的) 没有初始化 int main() {int* p;//p没有初始化,就意味着没有明确的指向//一个局部变量不初始化的话,放的是随机…

MySQL 插入数据的时候自动忽略重复数据

MySQL中插入数据,如果插入的数据在表中已经存在(主键或者唯一键已存在),使用insert into语法的时候,如果遇到重复数据,会直接报错,导致事务回滚,所有插入数据,全部失败。…