web自動化(二)元素定位 xpath定位css定位

常用的元素定位:ID,Name,xpath,css 等等
selenuim demo

import timefrom selenium import  webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import  WebDriverWait
from selenium.webdriver.support import  expected_conditions as EC
web_driver=webdriver.Firefox()
url="https://www.baidu.com"
web_driver.get(url)
#最多等待5秒,如果在2秒找到了元素 ,會執行下一步
# web_driver.implicitly_wait(5)#點擊 新聞 連接
el=(By.LINK_TEXT,"新聞")
el_select=web_driver.find_element(*el)
#等待元素 最長等待10秒,每2秒找一次
WebDriverWait(web_driver,10,2).until(EC.presence_of_element_located(el))
el_select.click()time.sleep(3)
#切回第1個tab
web_driver.switch_to.window(web_driver.window_handles[0])
#搜索selenuim
web_driver.find_element(By.ID,"kw").send_keys("selenuim")
web_driver.find_element(By.ID,"su").click()
time.sleep(3)web_driver.quit()

DrissionPage demo
幫助文檔http://drissionpage.cn

import time
from DrissionPage import WebPage
from  DrissionPage.common import By as DrissionBy
web_page=WebPage('d')
# get()已內置等待加載開始,后無須跟wait.load_start()
web_page.get(url)#XPATH 獲取元素
# loc=(DrissionBy.XPATH,'//*[@id="s-top-left"]/a[1]')
#link_text 獲取元素
loc=(DrissionBy.LINK_TEXT,'新聞')
# 等待元素加載 超時時間為5秒
web_page.wait.eles_loaded(loc,timeout=5)
web_page.ele(loc).click()time.sleep(3)# DrissionPage 3.x 開始就支持多 tab 對象共存,對象之間互不影響,而且標簽頁無需激活即可操作。因此不再需要切換標簽頁。
loc=(DrissionBy.ID,"kw")
#設置文本框值
web_page.ele(loc).input("DrissionPage")
loc=(DrissionBy.ID,"su")
web_page.ele(loc).click()time.sleep(10)
web_page.quit()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37186.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37186.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37186.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

數學建模---最小生成樹問題的建模~~~~~Matlab代碼

目錄 1.相關概念 (1)什么是樹 (2)生成樹和最小生成樹: 2.適用賽題 (1)賽題分類 (2)不同之處 3.兩種算法 (1)prim算法 (2&…

linux 下啟動app

創建啟動腳本: 創建一個啟動腳本,命名為你的應用程序或服務的名稱。這個腳本負責啟動、停止和管理你的應用程序。你可以使用 sudo 權限和任何文本編輯器創建這個腳本,比如 nano: bash sudo nano /etc/init.d/my_app 在編輯器中輸入啟動腳本的內容。一個簡單的例子可能如下…

java調用海康威視SDK實現車牌識別

我采用的是 報警布防方式 SDK版本為 CH-HCNetSDKV6.1.9.48_build20230410_win32 如何引用dll 我用的是jna 就不描述了 SDK在官網自行下載 以下代碼親測可用 自行參考~ 1.1接口調用流程 虛線框的內容是可選的,設備事先安裝配置好,能力集和配置接口可…

Linux高級編程——線程

pthread 線程 概念 :線程是輕量級進程,一般是一個進程中的多個任務。 進程是系統中最小的資源分配單位. 線程是系統中最小的執行單位。 優點: 比多進程節省資源,可以共享變量 進程會占用&am…

【高考】選專業時,應避免的誤區

【高考】選專業時,應避免的誤區-CSDN博客 【高考】選專業時以什么為主?-CSDN博客 分數限制下,選好專業還是選好學校?-CSDN博客 分數限制下,選好專業還是選好學校?-CSDN博客 在選專業時,考生…

解析 ThreadLocal 原理

ThreadLocal用于線程局部變量的一個工具類。 原理是為每個線程創建獨立的變量副本,從而實現線程數據的隔離。具體來說,ThreadLocal 通過一個 ThreadLocalMap來實現,這個 ThreadLocalMap 是一個自定義的哈希表,用于存儲線程和對應的…

Qt creator實現一個簡單計算器

目錄 1 界面設計 2 思路簡介 3 代碼 目錄 1 界面設計 ?2 思路簡介 3 代碼 3.1 widget.h 3.2 widget.c 4 完整代碼 在這里主要記載了如何使用Qt creator完成一個計算器的功能。該計算器可以實現正常的加減乘除以及括號操作,能實現簡單的計算器功能。 1 界…

Hadoop版本演變、分布式集群搭建

Hadoop版本演變歷史 Hadoop發行版非常的多,有華為發行版、Intel發行版、Cloudera Hadoop(CDH)、Hortonworks Hadoop(HDP),這些發行版都是基于Apache Hadoop衍生出來的。 目前Hadoop經歷了三個大的版本。 hadoop1.x:HDFSMapReduce hadoop2.x…

MySQL學習_python操作MySQL

用python連接數據庫分為以下幾個步驟 1.首先下載pymysql pip install pymysql2.創建數據 # 1.導入pymysql import pymysql # 2.連接MySQL conn pymysql.connect(host127.0.0.1,port3306,userroot,charsetutf8,dbunicom) cursor conn.cursor(cursorpymysql.cursors.DicCurso…

uniapp開發企業微信內部應用

最近一直忙著開發項目,終于1.0版本開發完成,抽時間自己總結下在項目開發中遇到的技術點。此次項目屬于自研產品,公司擴展業務,需要在企業微信中開發內部應用。因為工作中使用的是釘釘,很少使用企業微信,對于…

重新記錄做事的方向和內容(2024年6月28日19:50:38)

感覺自己沒必要這么焦慮,最后的結果無非就是自己又開始恢復到自己抽煙,喝酒,說臟話的一個狀態,自己那么糟糕自己都已經通過實事求是走出來了,現在難道自己還害怕什么? 如果順著這種封閉和沒有斷舍離的狀態…

【Qt C++實現繪制儀表盤】

要在Qt C中繪制儀表盤&#xff0c;您可以使用QChart、QSeries、QBarSeries、QPointSeries等類。以下是一個簡單的示例&#xff0c;演示如何使用這些類創建一個繪圖儀表盤&#xff1a; #include <QApplication> #include <QChart> #include <QChartView> #in…

06 Shell編程實戰——案例1

腳本編程步驟&#xff1a; 腳本編程一般分為4個步驟&#xff0c;即先確定需求&#xff0c;然后再確定你所要用到的語句&#xff0c; 需求分析&#xff1a;根據系統管理的需求&#xff0c;分析腳本要實現的功能、功能實現的層次、實現的命令與語句等&#xff1b;命令測試&…

Windows11下安裝多個JDK版本,并切換

Windows11下安裝多個JDK版本,并切換 前言步驟1、前期準備2、版本切換思考前言 一臺電腦可以同時安裝多個版本 jdk,建議兩個,最多不超三個。安裝多個JDK版本可能會占用較多的磁盤空間。此外,同時運行多個 JDK 版本可能會對系統性能產生一定的影響。 ??切換 JDK 有兩種方式…

ios swift5 視頻播放 播放視頻失敗 無法播放HEVC (H.265) 格式的視頻 H.264格式的可以播放

文章目錄 1.問題2.原因&#xff1a;iOS swift AVPlayerViewController無法播放HEVC (H.265) 格式的視頻3.解決方法用第三方框架MobileVLCKit來播放4.用MobileVLCKit寫的播放器4.1 兩個oc版本的4.2 兩個swiftUI版本的5.蘋果是支持HEVC (H.265) 格式的視頻&#xff0c;是硬件那邊…

css做旋轉星球可舉一反三

<!DOCTYPE html> <html lang"en"><head> <meta charset"UTF-8" /> <title>旋轉的星球</title> <style type"text/css">.box {/*position: relative;*/position: absolute;width: 139px;height: 139p…

計算文本相似度的幾種方法

計算文本相似度的幾種方法 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們來探討一下計算文本相似度的幾種方法。文本相似度在自然語言處理&#xff08…

算法訓練 | 動態規劃Part10 | 300.最長遞增子序列、674.最長連續遞增序列、718.最長重復子數組

目錄 300.最長遞增子序列 動態規劃法 674.最長連續遞增序列 動態規劃法 718.最長重復子數組 動態規劃法 300.最長遞增子序列 題目鏈接&#xff1a;300. 最長遞增子序列 - 力扣&#xff08;LeetCode&#xff09; 文章講解&#xff1a;代碼隨想錄 動態規劃法 “子序列是…

基于java語言+springboot技術架構開發的 互聯網智能3D導診系統源碼支持微信小程序、APP 醫院AI智能導診系統源碼

基于java語言springboot技術架構開發的 互聯網智能3D導診系統源碼支持微信小程序、APP 醫院AI智能導診系統源碼 一、智慧導診系統開發原理 導診系統從原理上大致可分為基于規則模板和基于數據模型兩類。 1、基于規則推理的方法通過人工建立癥狀、疾病和科室之間的對應規則實現…

Java反射API詳解與應用場景

一、Java反射API簡介: 一、什么是反射: 反射是一種強大的工具,它允許我們在運行時檢查類、方法和字段的信息,甚至允許我們動態的調用特定類的方法或改變字段的值。編程語言中的反射機制通常用于從類、對象或方法中檢索元數據,或者更特別的說,從代碼本身中獲取信息。這就…