自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Selenium 元素定位及操作

開(kāi)發(fā) 前端
前端比較常見(jiàn)的定位元素的方式是依據(jù)id、className樣式名稱和tag標(biāo)簽類型查找,我就比較喜歡用xpath作為查找方式。

前言

# 啟動(dòng)Chrome瀏覽器,前文有流程
driver = webdriver.Chrome(service=service, options=chrome_options)

我們接下來(lái)的操作都是對(duì)driver的編輯,它相當(dāng)于是一個(gè)可以跟程序交互的谷歌瀏覽器。

查找元素

前端比較常見(jiàn)的定位元素的方式是依據(jù)id、className樣式名稱和tag標(biāo)簽類型查找;我就比較喜歡用xpath作為查找方式,上文已經(jīng)提到過(guò),就不再展開(kāi)了

driver.find_element(By.ID, 'id')
driver.find_element(By.CLASS_NAME, 'class')
driver.find_element(By.TAG_NAME, 'span')
driver.find_element(By.XPATH, 'xpath')

操作元素

selenium有很多自帶的操作方法:

driver.find_element(By.XPATH, 'xpath').send_keys('肥魚(yú)') # 比如給input鍵入文本
driver.find_element(By.XPATH, 'xpath').get_attribute('value') # 獲取value屬性中的值
driver.find_element(By.XPATH, 'xpath').text # 獲取標(biāo)簽中的文本比如<span>肥魚(yú)</span>
driver.find_element(By.XPATH, 'xpath').click() # 點(diǎn)擊按鈕

不過(guò)終極操作還是使用js:

text = '肥魚(yú)'
btn = driver.find_element(By.XPATH, 'xpath')
driver.execute_script(f'arguments[0].value="{text}"', btn) # 鍵入文本
driver.execute_script('arguments[0].click();', btn) # 點(diǎn)擊按鈕

模擬登陸

下面的demo是有時(shí)效性的,發(fā)文做過(guò)測(cè)試是ok的,在CSDN之前寫的就??網(wǎng)站都沒(méi)了測(cè)個(gè)啥!

from time import sleep

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait

if __name__ == '__main__':
    print('==========開(kāi)始咯==========')
    # 設(shè)置ChromeDriver路徑
    chrome_driver_path = r'C:\Users\ws\Desktop\chrome-win64\chromedriver.exe'
    # 設(shè)置Chrome瀏覽器路徑
    chrome_browser_path = r'C:\Users\ws\Desktop\chrome-win64\chrome.exe'
    chrome_options = Options()
    chrome_options.binary_location = chrome_browser_path
    # 創(chuàng)建Service對(duì)象
    service = Service(chrome_driver_path)
    # 啟動(dòng)Chrome瀏覽器
    driver = webdriver.Chrome(service=service, options=chrome_options)
    driver.get('https://cmdparkour.github.io/vue-admin-box/dist/#/login')
    # 顯性等待
    WebDriverWait(driver, 10).until(
        # 等待登陸按鈕出現(xiàn)
        lambda _: driver.find_element(By.XPATH, '/html/body/div[1]/div/div/div/div[2]/form/button')
    )
    try:
        # 輸入賬號(hào)
        account = driver.find_element(By.XPATH, '/html/body/div[1]/div/div/div/div[2]/form/div[1]/div[2]/input')
        # 清空
        account.clear()
        # 輸入密碼
        password = driver.find_element(By.XPATH, '/html/body/div[1]/div/div/div/div[2]/form/div[2]/div[2]/input')
        # 清空
        password.clear()
        sleep(5)
        # 鍵入
        account.send_keys('admin')
        # 鍵入
        password.send_keys('123456')
        # 點(diǎn)擊登陸
        confirm_btn = driver.find_element(By.XPATH,
                                          '/html/body/div[1]/div/div/div/div[2]/form/button')
        driver.execute_script('arguments[0].click();', confirm_btn)
        sleep(20)
    except Exception as e:
        print('Exception:', e)
    finally:
        driver.close()
    print('==========結(jié)束咯==========')
責(zé)任編輯:趙寧寧 來(lái)源: Ssoul肥魚(yú)
相關(guān)推薦

2012-03-13 17:18:58

WEBKIT

2024-03-18 09:50:18

Selenium元素Python

2009-03-24 09:22:53

Windows 7使用技巧微軟

2011-07-18 13:37:53

2009-09-24 17:28:26

JavaScript操

2018-03-01 08:56:20

存儲(chǔ)能力定位

2022-11-03 08:00:00

Xpath動(dòng)態(tài)元素定位器

2010-08-16 11:33:16

DIV定位

2021-08-04 07:21:31

Hive 數(shù)據(jù)排查

2010-06-28 18:29:09

UML類圖元素

2021-04-09 18:01:03

前端ReactDOM

2010-08-26 17:02:35

DIV定位

2022-10-24 09:56:09

seleniumGrid分布式

2023-03-17 23:08:36

PostgreSQL數(shù)據(jù)庫(kù)

2010-09-13 10:52:37

CSS定位

2022-03-07 09:14:04

Selenium鼠標(biāo)元素

2009-05-27 09:28:29

Java對(duì)象元素存儲(chǔ)

2010-07-06 10:12:48

UML部署圖

2022-02-16 08:50:51

web自動(dòng)化測(cè)試python

2023-12-25 09:52:32

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)