"""
dirver - 公共方法
"""
import os
import sys
import time
import yaml
from pathlib import Path
from selenium import webdriver
# 获取浏览器driver
from selenium.webdriver.common.by import By
def get_driver():
# 获取配置对象
option = webdriver.ChromeOptions()
option.add_experimental_option("detach", True)
# 去掉自动化标识
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_argument('--disable-blink-features=AutomationControlled')
option.add_argument('--force-device-scale-factor=0.9') # 屏幕百分比缩小
# 关闭保存密码弹窗
prefs = {}
prefs['credentials_enable_service'] = False
prefs['profile.password_manager_enabled'] = False
option.add_experimental_option('prefs', prefs)
driver = webdriver.Chrome(options=option)
driver.implicitly_wait(10)
time.sleep(1)
return driver
# 读取配置
def read_yml(yml):
config_yml = str(Path(os.path.relpath(sys.argv[0])).resolve().parent.parent) + "\\config\\" +yml
with open(config_yml, 'r', encoding='utf-8') as f:
result = yaml.load(f.read(), Loader=yaml.FullLoader)
# print(result)
return result
# 图片,视频路径
def get_filepath():
# 当前目录
# baseDir = os.path.dirname(os.path.abspath(os.path.relpath(sys.argv[0])))
# 上级目录
baseDir2 = Path(os.path.relpath(sys.argv[0])).resolve().parent.parent
# print(baseDir2)
return str(baseDir2) + "\\file\\"
# 系统登陆
def login(data):
driver = get_driver()
driver.maximize_window()
time.sleep(2)
driver.get(data["url"])
driver.implicitly_wait(10)
driver.find_elements(By.CLASS_NAME, 'loginInput')[0].send_keys(data["name"])
driver.find_elements(By.CLASS_NAME, 'loginInput')[1].send_keys(data["pwd"])
driver.find_elements(By.CLASS_NAME, 'loginButton1')[0].click()
time.sleep(4)
return driver
import win32con
import win32clipboard as wincld
# 给鼠标右键复制使用
def ctrl_c(info):
wincld.OpenClipboard()
wincld.EmptyClipboard()
wincld.SetClipboardData(win32con.CF_UNICODETEXT, info)
wincld.CloseClipboard()
web自动化5-常用[共用]方法分离
最新推荐文章于 2024-10-04 16:15:19 发布