0


Python自动打开浏览器、输入账号密码、登录、截图

这里示例一下通过python,自动打开网页,登录后自动截图

总体思路如下:

① 加载Chrome浏览器驱动程序(下载地址)

    具体下载方式可以参考:使用selenium自动打开谷歌浏览器

② 打开url链接(此处建议sleep等待一下,避免网速或内存不良时,导致网页打开较久的问题)

③ 找到账号密码的输入框

④ 输入账号密码

⑤ 点击登录按钮

⑥ 全屏,避免不同分辨率导致页面布局的问题

⑦ 逐个点击需要截图的链接路径位置

⑧ 若有多个需要打开,需要将目录折叠回原样,或者F5刷新页面

⑨ 截图,并存放到指定目录

具体代码示例如下:

import os
import smtplib
import time
import datetime

from selenium.webdriver.chrome.service import Service
from selenium import webdriver
from selenium.webdriver.common.by import By

def login_fr(driver_path, url, username, password):
    # 打开浏览器并登录
    path = Service(driver_path)
    driver = webdriver.Chrome(service=path)
    # 打开链接
    driver.get(url)
    time.sleep(3)

    # 浏览器全屏
    driver.maximize_window()

    # 找到输入框
    user_input = driver.find_element(by=By.XPATH, value='//input[@type="text"]')
    pw_input = driver.find_element(by=By.XPATH, value='//input[@type="password"]')
    login_btn = driver.find_element(by=By.CLASS_NAME, value='login-button')

    # 输入用户名和密码,点击登录
    user_input.send_keys(username)
    pw_input.send_keys(password)
    time.sleep(1)
    login_btn.click()
    time.sleep(3)

    return driver

def cut_screen(driver, cut_list, img_path):
    # 逐步打开需要截图页面的位置
    for cut_key, cut_value in cut_list.items():
        i_cut_dir = cut_key
        # 展开文件夹
        driver.find_element(by=By.XPATH, value='//div[text()="' + i_cut_dir + '"]').click()
        for i_cut_file in cut_value:
            driver.find_element(by=By.XPATH, value='//div[text()="' + i_cut_file + '"]').click()
            time.sleep(1)

            # 全屏+等待加载
            screen_do(driver, '全屏')
            time.sleep(5)

            # 截图、命名、移动
            # code = datetime.datetime.now().strftime("%Y%m%d%H%M%S")
            # filename = i_cut_file + str(code) + '.png'
            filename = i_cut_file + '.png'
            driver.get_screenshot_as_file(img_path + filename)

            # 取消全屏
            screen_do(driver, '退出全屏')
            time.sleep(1)

            # 关闭打开页面,减少消耗
            screen_do(driver, '关闭全部')
            time.sleep(1)

        # 折叠文件夹,避免文件夹的重复操作
        driver.find_element(by=By.XPATH, value='//div[text()="' + i_cut_dir + '"]').click()

    time.sleep(3)

def screen_do(driver, do):
    # 操作功能菜单键
    driver.find_element(by=By.CLASS_NAME, value='dec-frame-tab-pane-tabs-down-list').click()
    driver.find_element(by=By.XPATH, value='//div[text()="' + do + '"]').click()

if __name__ == '__main__':
    # 指定浏览器驱动位置
    # 下载地址:https://chromedriver.storage.googleapis.com/index.html
    driver_path = '../venv/chromedriver.exe'

    # 定义目标URL信息
    aim_url = {
        'url': 'http://localhost:4087/web/view',
        'username': 'demo',
        'password': 'demo'
    }

    # 定义需要打开的链接
    cut_list = {
        'Person': ['中国疫情大数据']
    }

    # 定义img存放文件夹
    img_path = python_path + 'auto_img/'
    if not os.path.exists(img_path):
        os.makedirs(img_path)

    # 登录
    driver = login_fr(driver_path, aim_url['url'], aim_url['username'], aim_url['password'])

    # 截图
    cut_screen(driver, cut_list, img_path)
 
    # 关闭浏览器
    driver.close()

通过如上的代码,就可以完成自动打开谷歌浏览器、键入账号密码登录、打开指定链接、并完成截图和图片存储


本文转载自: https://blog.csdn.net/wang1qqqq/article/details/124248365
版权归原作者 丿潇湘丶书笛 所有, 如有侵权,请联系我们删除。

“Python自动打开浏览器、输入账号密码、登录、截图”的评论:

还没有评论