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.pswp.cn/news/714618.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714618.shtml
英文地址,請注明出處:http://en.pswp.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;他表示人們現在還用…