網站首頁 編程語言 正文
Python里面使用Selenium是一個很重要的自動化測試模塊,我們可以用它寫一個驗證登錄腳本,下面是一個簡單的demo:
from selenium import webdriver
from selenium.webdriver.common.by import By #用于定位class元素
from selenium.webdriver.support.ui import WebDriverWait #等待
from selenium.webdriver.support import expected_conditions as EC #執行條件
import time
#我們可以把賬號密碼放在txt文件中,用||分隔
with open(filename.txt,'r') as f:
account=f.read().split('||')
name=account[0]
password=account[1]
#1.創建瀏覽器對象
options=webdriver.EdgeOptions()
options.headless=True#無頭瀏模式
#以下設置可以將模擬瀏覽器偽裝成自己常用的瀏覽器
prefs={'profile.default_content_settings_popups':0}
options.add_experimental_option('prefs',prefs)
options.add_argument(r"--user-data-dir=D:\Users\zhangsanlisi\AppData\Local\Microsoft\Edge\User Data copy") # 設置成用戶自己的數據目錄,這里有個坑,需要把自己的瀏覽器用戶目錄的東西復制一份改個名字設置到這里引用,否則會報錯
web =webdriver.Edge(options=options)
html=web.get('https://xxxx.sod.com/sse/login')
WebDriverWait(web, 10).until(EC.presence_of_element_located((By.XPATH, "http://div//input[@id='username']")) #獲取帶有a標簽的inntertext中的關鍵字,并給與網頁最大10秒的加載時間
).clear()
WebDriverWait(web, 10).until(EC.presence_of_element_located((By.XPATH, "http://div//input[@id='username']")) #獲取帶有a標簽的inntertext中的關鍵字,并給與網頁最大10秒的加載時間
).send_keys(name)
WebDriverWait(web, 10).until(EC.presence_of_element_located((By.XPATH, "http://div//input[@id='password']")) #獲取帶有a標簽的inntertext中的關鍵字,并給與網頁最大10秒的加載時間
).clear()
WebDriverWait(web, 10).until(EC.presence_of_element_located((By.XPATH, "http://div//input[@id='password']")) #獲取帶有a標簽的inntertext中的關鍵字,并給與網頁最大10秒的加載時間
).send_keys(password)
WebDriverWait(web, 10).until(EC.presence_of_element_located((By.XPATH, "http://div//input[@id='formsubmitButton']")) #獲取帶有a標簽的inntertext中的關鍵字,并給與網頁最大10秒的加載時間
).click()
time.sleep(5)
#2.打開網址
web.get('http://xxxx.ewdt.com/')
#把獲取到的cookie連接起來
cookie='; '.join([(i['name']+'='+i['value']) for i in web.get_cookies()])
with open('cookie.txt','w') as f:
f.write(cookie)
web.close()
print('cookie已更新')
原文鏈接:https://blog.csdn.net/qq_33909788/article/details/126336575
- 上一篇:Spring之基于注解裝配Bean
- 下一篇:springboot項目搭建和基礎應用
相關推薦
- 2022-03-31 C#實現單位換算器_C#教程
- 2021-12-10 時間戳處理的幾種方式
- 2022-08-27 C#從前面或后面按指定數量刪除字符串_C#教程
- 2022-03-24 使用sublime?Text3過程中的各種問題的解決_相關技巧
- 2022-02-23 關于zabbix自定義監控項和觸發器問題_zabbix
- 2022-05-12 tp5 二級項目目錄配置nginx偽靜態
- 2022-12-03 Python學習之列表和元組的使用詳解_python
- 2023-02-12 python中使用docx模塊處理word文檔_python
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支