Python 自动签到《Ruike1》

脚本说明

自动登录到论坛并签到

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.remote.webelement import WebElement
from selenium.webdriver.support.wait import WebDriverWait

"""
    step 1:https://www.selenium.dev/ 下载对应浏览器驱动,放在浏览器根目录
    例如:C:\Program Files (x86)\Microsoft\Edge\Application\msedgedriver.exe
    step 2: 下载包
    pip install selenium
    step 3:
    引入pom.py
"""

# 技类
class BasePage:
    def __init__(self,url,driver:webdriver):
        self.driver = driver
        self.url = url
        if not driver:
            self.driver = webdriver.Edge()
        driver.get(url)
    def lazyload(self, by:By, value)->WebElement:
        """
        显性加载
        :param by: 定位元素的方式
        :param value: 表达式
        :return:
        """
        return WebDriverWait(self.driver, 10).until(lambda x:x.find_element(by, value))
    def down_base64_png(self,srcStr:str, file_name:str='code.png'):
        """
        下载验证码
        :return:
        """
        import base64
        img_data = srcStr.split(',')[1]
        img_data = base64.b64decode(img_data)
        with open(file_name, 'wb') as f:
            f.write(img_data)

    def quit(self):
        self.driver.quit()




class Ruike1(BasePage):
    def __init__(self, url:str='https://www.ruike1.com/',driver:webdriver=webdriver.Edge()):
        super().__init__(url,driver)

    def login(self,u_name,u_pwd):
        el_name = self.lazyload(By.ID,'ls_username')
        print(el_name)
        el_pwd = self.lazyload(By.ID,'ls_password')
        el_name.send_keys(u_name)
        el_pwd.send_keys(u_pwd)
        lg_btn = self.lazyload(By.TAG_NAME,'button')
        lg_btn.click()
        print('登录成功')
        time.sleep(1)
        sign_in = self.lazyload(By.ID,'fx_checkin_b')
        sign_in.click()
        print('签到成功')
        time.sleep(1)
        self.quit()




if __name__ == '__main__':
    rkPage = Ruike1()
    rkPage.login('xxx','3333')

来源链接:https://www.cnblogs.com/paylove/p/18689470

请登录后发表评论

    没有回复内容