selenium初始学习--打开新标签操作

selenium 打开新标签操作

简单说一下使用

环境 :python 3.9 selenium 4,18

初始化操作 目的

打开bilibilie网站并搜索视频(电影) 并点击观看

操作

打开应用并搜索网址

from selenium import webdriver
import timefrom selenium.webdriver.common.by import ByopenChart = webdriver.Chrome()
openChart.get('https://www.bilibili.com/')

元素定位 操作

个人使用的xpath

openChart.find_element(By.XPATH, '//*[@id="nav-searchform"]/div[1]/input').send_keys('我爱你')
openChart.find_element(By.XPATH, '//*[@id="nav-searchform"]/div[2]').click()

打开新页面

有的也免回重新打开一个新页面 然后就获取不到元素定位了 容易发生找不到的现象
所以 有下面的操作

openChart.switch_to.window(openChart.window_handles[-1])  # 跳转到不同页面下的新页面.
time.sleep(1)  # 延长时间确保能捕捉到.

查询元素点击 并关闭


openChart.find_element(By.PARTIAL_LINK_TEXT, "立即观看").click()
time.sleep(10)
openChart.close()

要点:

openChart.window_handles[-1] 中的 [-1] 就是 Python 中列表的索引,表示获取这个列表的最后一个元素。也就是说,openChart.window_handles[-1] 返回的就是最新打开的窗口或者标签页的句柄。然后 openChart.switch_to.window() 函数就可以用这个句柄来切换到这个新打开的窗口或者标签页。
所以,openChart.switch_to.window(openChart.window_handles[-1]) 就是将控制权切换到最新打开的窗口或标签页

在Selenium中, window_handles 是一个列表,它包含当前浏览器进程中所有打开的窗口和标签页的句柄(相当于ID或者指针)。这些句柄按照它们被打开的顺序存储在列表中。所以 window_handles[0] 就代表第一个打开的窗口或标签页的句柄。
当你使用 openChart.switch_to.window(openChart.window_handles[0]) 的时候,Selenium会切换回到最初打开的那个窗口或标签页

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

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

相关文章

PySide6+VSCode Python可视化环境搭建

#记住在cmd中运行,不要在vscode里运行,否则env会装到工程目录下 python -m venv env #env\Scripts\activate.bat pip install pyside6 下载本期源码 vscode装一个PYQT Integration插件,设置好两个路径(下面有个脚本用于获取路径&…

MySQL 数据库表设计和优化

一、数据结构设计 正确的数据结构设计对数据库的性能是非常重要的。 在设计数据表时,尽量遵循一下几点: 将数据分解为合适的表,每个表都应该有清晰定义的目的,避免将过多的数据存储在单个表中。使用适当的数据类型来存储数据&…

2020小学甲组--恢复数组

题目描述 有一个数组a[1..n]&#xff0c;但是这个数组的内容丢失了&#xff0c;你要尝试恢复它。已知以下的三个事实&#xff1a; 1、对于1<i<n&#xff0c;都有a[i]>0&#xff0c;且所有的a[i]互不相同。即a数组保存的全部都是正整数&#xff0c;且互不相同。 2、…

挑战杯 基于机器视觉的车道线检测

文章目录 1 前言2 先上成果3 车道线4 问题抽象(建立模型)5 帧掩码(Frame Mask)6 车道检测的图像预处理7 图像阈值化8 霍夫线变换9 实现车道检测9.1 帧掩码创建9.2 图像预处理9.2.1 图像阈值化9.2.2 霍夫线变换 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分…

范伟:你们怎么老提1,200呢,有什么典故啊?赵本山:没有啊!

范伟&#xff1a;你们怎么老提1,200呢,有什么典故啊?赵本山&#xff1a;没有啊&#xff01; --小品《面子》&#xff08;中3&#xff09;的台词 表演者&#xff1a;赵本山 高秀敏 范伟 &#xff08;接上&#xff09; 范伟&#xff1a;哎吃啊 赵&#xff1a;哎呀这电视看的挺…

Acwing枚举、模拟与排序(一)

连号区间数 原题链接&#xff1a;https://www.acwing.com/problem/content/1212/ 初始最小值和最大值的依据是题目给出的数据范围。只要在数据范围之外就可以。 连号的时候&#xff0c;相邻元素元素之间&#xff0c;差值为1。那么区间右边界和左边界&#xff0c;的值的差&#…

cAdvisor+Prometheus+Grafana 搞定Docker容器监控平台

cAdvisorPrometheusGrafana cAdvisorPrometheusGrafana 搞定Docker容器监控平台1、先给虚拟机上传cadvisor2、What is Prometheus?2.1、架构图 3、利用docker安装普罗米修斯4、安装grafana cAdvisorPrometheusGrafana 搞定Docker容器监控平台 1、先给虚拟机上传cadvisor cAd…

MySQL事务和锁机制

MySQL技术——事务和锁机制 一、事务&#xff08;1&#xff09;概述&#xff08;2&#xff09;ACID特性&#xff08;3&#xff09;事务并发存在的问题&#xff08;4&#xff09;事务的隔离级别 二、锁机制&#xff08;1&#xff09;锁的力度&#xff08;2&#xff09;表的分类&…

网络编程-编码与解码(Protobuf)

编码与解码 下面的文字都来自于极客时间 为什么要编解码呢&#xff1f;因为计算机数据传输的是二进制的字节数据 解码&#xff1a;字节数据 --> 字符串&#xff08;字符数据&#xff09; 编码&#xff1a;字符串&#xff08;字符数据&#xff09;–> 字节数据 我们在编…

Python 实现海康机器人工业相机 MV-CS050-10GC 的实时显示视频流及拍照功能(实时显示视频流同时可以进行拍照)

参考链接&#xff1a; https://www.cnblogs.com/HanYork/p/17388506.html https://www.cnblogs.com/miracle-luna/p/16960556.html#5138211 Flask搭建流媒体服务器&#xff1a;使用Flask搭建一个流媒体服务器_multipart/x-mixed-replace; boundaryframe-CSDN博客

公共字段自动填充

在开发中经常面临对于一些公共字段的赋值。 如在下表中&#xff1a; 如何让程序自动为我们需要赋值的公共字段进行赋值&#xff0c;避免在业务代码中重复写这些公共字段的赋值代码 如下图所示&#xff1a; 实现思路&#xff1a; 1.自定义注解AutoFill&#xff0c;用于标识需…

linux环境安装cuda toolkit

1 全新安装 如果环境中没安装过cuda版本&#xff0c; 这种情况下比较简单。 直接在https://developer.nvidia.com/cuda-toolkit-archive选择对应版本下载安装即可。 如下为安装cuda toolkit 11.8. 2 环境中已经存在其他版本 这种情况下比较复杂一些。 首先要确认最高支持的…

李沐动手学习深度学习——4.2练习

1. 在所有其他参数保持不变的情况下&#xff0c;更改超参数num_hiddens的值&#xff0c;并查看此超参数的变化对结果有何影响。确定此超参数的最佳值。 通过改变隐藏层的数量&#xff0c;导致就是函数拟合复杂度下降&#xff0c;隐藏层过多可能导致过拟合&#xff0c;而过少导…

Git多人合作的推送流程

多人合作时&#xff0c;使用Git进行代码推动&#xff08;push&#xff09;需要一定的协调和规范&#xff0c;以确保代码库的整体健康。以下是一个常见的多人合作时的Git代码推动流程&#xff1a; 同步主分支&#xff1a; 在推送之前&#xff0c;确保你的本地主分支&#xff08;…

【Java】四大函数式接口

消费型接口Consumer 消费型接口接收一个输入&#xff0c;没有返回值 在stream流计算中 forEach() 接收一个消费型接口Consumer用于 遍历元素 /*** 消费型接口* 接收一个输入&#xff0c;没有返回值*/ public class demo01 {public static void main(String[] args) {//TODO 消…

【MySQL】表的内连和外连(重点)

表的连接分为内连和外连。 一、内连接 内连接实际上就是利用 where 子句对两种表形成的笛卡儿积进行筛选&#xff0c;前面学习的查询都是内连接&#xff0c;也是在开发过程中使用的最多的连接查询。 select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件; 注意&…

【数仓】Hadoop集群配置常用参数说明

Hadoop集群中&#xff0c;需要配置的文件主要包括四个 配置核心Hadoop参数&#xff1a; 编辑core-site.xml文件&#xff0c;设置Hadoop集群的基本参数&#xff0c;如文件系统、Hadoop临时目录等。 配置HDFS参数&#xff1a; 编辑hdfs-site.xml文件&#xff0c;设置HDFS的相关参…

策略开发:EMA如何计算

EMA的计算原理 EMA 是MA&#xff08;平滑移动平均线&#xff09;的另一种形式。全名“加权指数移动平均线”。 2/13就是12日移动平均线的平滑因子&#xff0c;他的意思是指&#xff1a;给予新价格 2/13的权重&#xff0c;给予过去的EMA 11/13的权重。 在计算的时候第一天的M…

Linux使用基础命令

1.常用系统工作命令 (1).用echo命令查看SHELL变量的值 qiangziqiangzi-virtual-machine:~$ echo $SHELL /bin/bash(2).查看本机主机名 qiangziqiangzi-virtual-machine:~$ echo $HOSTNAME qiangzi-virtual-machine (3).date命令用于显示/设置系统的时间或日期 qiangziqian…

Linux多线程服务端编程:使用muduo C++网络库 学习笔记 附录B 从《C++ Primer(第4版)》入手学习C++

这是作者为《C Primer&#xff08;第4版&#xff09;&#xff08;评注版&#xff09;》写的序言&#xff0c;文中“本书”指的是这本书评注版。 B.1 为什么要学习C 2009年本书作者Stanley Lippman先生应邀来华参加上海祝成科技举办的C技术大会&#xff0c;他表示人们现在还用…