web自動(dòng)化測(cè)試Selenium點(diǎn)擊元素的常用方法
前言
點(diǎn)擊方法在web自動(dòng)化測(cè)試中經(jīng)常用到,下面就來(lái)介紹一下selenium常用和不常用的點(diǎn)擊方法;
1、常用方法
1.1、使用 click() 方法:
這是最簡(jiǎn)單和最常用的方法。通過(guò)選中要點(diǎn)擊的元素,然后使用 click() 方法來(lái)觸發(fā)點(diǎn)擊事件。
示例代碼:
element = self.driver.find_element(By.XPATH,"http://div[@class='ant-select-selection__rendered']").find_elements(By.XPATH, "http://div[@class='ant-select-selection-selected-value' and contains(@title,'全部')]")[1] element.click()
1.2、使用 JavaScript 執(zhí)行點(diǎn)擊事件:
有時(shí)候使用 Selenium 的 click() 方法可能不夠穩(wěn)定,可以通過(guò)執(zhí)行 JavaScript 代碼來(lái)模擬點(diǎn)擊事件。
示例代碼:
element = self.driver.find_element(By.XPATH,"http://div[@class='ant-select-selection__rendered']").find_elements(By.XPATH, "http://div[@class='ant-select-selection-selected-value' and contains(@title,'全部')]")[1] self.driver.execute_script("arguments[0].click();", element)
1.3、使用 ActionChains 類(lèi):
ActionChains 類(lèi)提供了模擬用戶行為的方法,其中包括鼠標(biāo)點(diǎn)擊操作。
示例代碼:
element = self.driver.find_element(By.XPATH,"http://div[@class='ant-select-selection__rendered']").find_elements(By.XPATH, "http://div[@class='ant-select-selection-selected-value' and contains(@title,'全部')]")[1] ActionChains(self.driver).click(element).perform()
這些方法可以根據(jù)具體情況和需求選擇合適的方式來(lái)觸發(fā)點(diǎn)擊事件。通常情況下,推薦優(yōu)先使用 click() 方法,如果出現(xiàn)穩(wěn)定性問(wèn)題,可以嘗試使用 JavaScript 執(zhí)行點(diǎn)擊事件或者 ActionChains 類(lèi)來(lái)解決。
附:selenium點(diǎn)擊懸停元素
#!/usr/bin/env python # -*- coding: utf-8 -*- from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Chrome() driver.get("http://www.baidu.com") #找到設(shè)置 element = driver.find_element(By.ID,'s-usersetting-top') #鼠標(biāo)懸停 ActionChains(driver).move_to_element(element).perform() #點(diǎn)擊“高級(jí)搜索” #WebDriverWait(driver,10):在設(shè)置時(shí)間(10s)內(nèi),等待后面的條件發(fā)生。如果超過(guò)設(shè)置時(shí)間未發(fā)生,就拋出異常。等待元素出現(xiàn):visibility_of_element_located WebDriverWait(driver,10).until(EC.visibility_of_element_located((By.XPATH,'//*[@id="s-user-setting-menu"]/div/a[2]'))) driver.find_element_by_xpath('//*[@id="s-user-setting-menu"]/div/a[2]').click()
總結(jié)
到此這篇關(guān)于web自動(dòng)化測(cè)試Selenium點(diǎn)擊元素常用方法的文章就介紹到這了,更多相關(guān)Selenium點(diǎn)擊元素方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python代碼實(shí)現(xiàn)掃碼關(guān)注公眾號(hào)登錄的實(shí)戰(zhàn)
本文主要介紹了python代碼實(shí)現(xiàn)掃碼關(guān)注公眾號(hào)登錄的實(shí)戰(zhàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11對(duì)Python多線程讀寫(xiě)文件加鎖的實(shí)例詳解
今天小編就為大家分享一篇對(duì)Python多線程讀寫(xiě)文件加鎖的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01python協(xié)程gevent案例 爬取斗魚(yú)圖片過(guò)程解析
這篇文章主要介紹了python協(xié)程gevent案例 爬取斗魚(yú)圖片過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08一文探索CPython的變量實(shí)現(xiàn)機(jī)制
在Python中,變量的使用看起來(lái)非常簡(jiǎn)單,然而,這種簡(jiǎn)單的賦值操作背后,CPython其實(shí)做了很多復(fù)雜的工作,下面我們就來(lái)一起探索一下吧2025-02-02解決Tensorflow2.0 tf.keras.Model.load_weights() 報(bào)錯(cuò)處理問(wèn)題
這篇文章主要介紹了解決Tensorflow2.0 tf.keras.Model.load_weights() 報(bào)錯(cuò)處理問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想過(guò)來(lái)看看吧2020-06-06python使用Pygal創(chuàng)建交互式圖表的示例代碼
Pygal 是一個(gè)用于生成高質(zhì)量、可縮放(SVG 格式)、可交互圖表的 Python 圖表庫(kù),與傳統(tǒng)的圖表庫(kù)不同,Pygal 的輸出是基于矢量圖形的,本文給大家介紹了python使用Pygal創(chuàng)建交互式圖表的方法示例,需要的朋友可以參考下2024-12-12