python selenium_鼠标点击_键盘输入.

# -*- coding: utf-8 -*-
from selenium import webdriver
import time, random, re, json
from pynput.mouse import Button, Controller # 导入鼠标模块
from pynput.keyboard import Controller as KeyController # 导入键盘模块
from pynput.keyboard import Key # 导入键盘模块


def run():
    user_list = [
        {'user': 'joyo', 'password': 'j123456'}
    ]

    url = 'https://login.jhtml?'


    # ------------------------------------- ↓ 👇  设置 浏览器 👇 ↓ ------------------------------------------

    chromeOptions = webdriver.ChromeOptions()   # 创建设置对象

    chromeOptions.add_experimental_option('excludeSwitches',['enable-automation'])  # 设置webdriver为undefind, 因为自动驱动时该值为true
    chromeOptions.add_argument('--headless')  # 浏览器无窗口加载
    chromeOptions.add_argument('--disable-gpu')  # 不开启GPU加速
    chromeOptions.add_argument('--disable-dev-shm-usage')  # 禁止
    chromeOptions.add_argument('--no-sandbox')  # 以根用户打身份运行Chrome,使用-no-sandbox标记
    # chromeOptions.add_argument("--proxy-server = %s" % proxies['http']) # 设置代理
    # chromeOptions.add_argument(ua)  # 设置ua 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36',
    # chromeOptions.add_argument('--hide-scrollbars') #隐藏滚动条, 应对一些特殊页面
    # chromeOptions.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度

    driver = webdriver.Chrome(chrome_options=chromeOptions, executable_path="/usr/bin/chromedriver")    # linux 上加载设置
    driver = webdriver.Chrome(chrome_options=chromeOptions)     # windows 上加载设置

    # -------------------------------------↑ 👆 设置 浏览器 👆 ↑ ------------------------------------------



    # driver = webdriver.Firefox()   # 火狐浏览器
    driver = webdriver.Chrome()    # 谷歌浏览器

    time.sleep(random.uniform(1, 3))

    driver.get(url) # 请求网页



    # ------------------------------------- ↓ 👇  设置 浏览器 窗口大小 👇 ↓ ------------------------------------------

    driver.maximize_window()    # 窗口最大化
    # 将窗口大小实例化,打印浏览器的宽和高
    size_Dict = driver.get_window_size()
    print("当前浏览器的宽:", size_Dict['width'])
    print("当前浏览器的高:", size_Dict['height'])
    # 设置浏览器的大小
    driver.set_window_size(width=500, height=500, windowHandle="current") # windowHandle = "current" 控制当前窗口的意思, 不写的话默认控制当前窗口有


    # -------------------------------------↑ 👆 设置 浏览器 窗口大小 👆 ↑ ------------------------------------------



    # 读鼠标坐标
    mouse = Controller() # 创建 鼠标 对象
    # 设置鼠标坐标
    mouse.position = (1165, 320)   # 设置鼠标位置
    # 点击鼠标
    mouse.click(Button.left)  # 点击鼠标2下 mouse.click(Button.left, 2)
    time.sleep(0.5)
    mouse.release(Button.left)  # 释放鼠标左键
    time.sleep(random.uniform(1, 2))

    k = KeyController() # 创建 键盘 对象
    # 清空输入框
    for i in range(18):
        k.press(Key.backspace)  # 用键盘按住 backspace
        k.release(Key.backspace)  # 放开backspace
    mouse.position = (1038, 420)    # 设置鼠标位置
    mouse.click(Button.left)  # 点击鼠标2下 mouse.click(Button.left, 2)
    time.sleep(0.5)
    mouse.release(Button.left)  # 释放鼠标左键
    time.sleep(1)
    user = random.choice(user_list)
    # 输入用户名
    for i in user['user']:  # 用键盘输入账号,一个字母一个字母的输入
        k.type(i)
        time.sleep(random.uniform(0.5, 1.5))
    k.press(Key.tab)    # 用键盘按住 tab 键
    k.release(Key.tab)    # 释放 tab 键  tab键可以切换输入框
    time.sleep(1)
    # 输入密码
    for i in user['password']:
        k.type(i)
        time.sleep(random.uniform(0.5, 1.5))
    # 鼠标移动到登录按钮位置
    mouse.position = (1030, 540)
    time.sleep(random.uniform(0.5, 1.5))
    mouse.click(Button.left)    # 点击鼠标左键
    time.sleep(2)

    time.sleep(30)
    # driver.get("https://newkf.topchitu.com/quickview/shopkpi.shtml")
    # time.sleep(3)
    driver.get("https://shopkpi.shtml?")
    print('>>> ', driver.page_source, ' <<<')




if __name__ == "__main__":
    run()




posted @ 2020-01-03 11:56  殇夜00  阅读(19)  评论(0)    收藏  举报