web自动化注册登录---(6) page类的编写

承接上篇base公共类

所有的准备工作基本做好,接下来就是编写base 类了,这个应该不用多说,将页面逻辑封装成类,逻辑业务分离,懂得都懂 ^.^


先编写注册的page类:
# _*_conding:utf-8_*_
# 作者: 杨佳
# 创建时间: 2020/9/2 19:57
# 文件: register
from selenium.webdriver.common.by import By
import time
from scripts import redisconnect
from bases.base_function import wait_element_visible,get_url


def register(phone_num,url):

    # 隐私条款
    check_box = '//*[@id="logo"]/div[2]/label/span/span'

    register_btn = '//*[@id="warp3"]/div[3]'
    company_employ = '//*[@id="app"]/div/div/div[3]/label/span[1]/span'
    sub_btn1 = '//*[@id="app"]/div/div/div[4]/button'

    user_name = '//*[@id="app"]/div/div/div/form/div[1]/div/div[1]/input'
    company_name = '//*[@id="app"]/div/div/div/form/div[2]/div/div/div[1]/input'
    company_name_li= '/html/body/div[2]/div[1]/div[1]/ul/li'
    email = '//*[@id="app"]/div/div/div/form/div[3]/div/div/input'
    phone = '//*[@id="app"]/div/div/div/form/div[5]/div/div/input'
    code_btn = '//*[@id="app"]/div/div/div/form/div[6]/div/button'
    verification_code = '//*[@id="app"]/div/div/div/form/div[6]/div/div/input'
    sub_btn2 = '//*[@id="app"]/div/div/div/div[2]/button'

    register_success_flag = '//*[@id="app"]/div/div/div/div'

    driver = get_url(url)
    wait_element_visible(driver,(By.XPATH,check_box)).click()

    driver.find_element(By.XPATH,register_btn).click()

    company_employ_elem = wait_element_visible(driver,(By.XPATH,company_employ))
    company_employ_elem.click()


    driver.find_element(By.XPATH,sub_btn1).click()
    user_name_elem = wait_element_visible(driver,(By.XPATH,user_name))
    user_name_elem.send_keys(phone_num)

    company_name_elem = wait_element_visible(driver,(By.XPATH,company_name))
    company_name_elem.send_keys('****')
    company_name_li_elem = wait_element_visible(driver, (By.XPATH, company_name_li))
    company_name_li_elem.click()

    email_elem = wait_element_visible(driver, (By.XPATH, email))
    email_num = phone_num+'@163.com'
    email_elem.send_keys(email_num)
    phone_elem = wait_element_visible(driver, (By.XPATH, phone))
    phone_elem.send_keys(phone_num)
    code_btn_elem = wait_element_visible(driver,(By.XPATH,code_btn))
    code_btn_elem.click()
    time.sleep(3)

    code = redisconnect.get_register_code(phone_num)
    print(f'验证码为:{code}')

    verification_code_elem = wait_element_visible(driver,(By.XPATH,verification_code))
    verification_code_elem.send_keys(code)
    driver.find_element(By.XPATH,sub_btn2).click()



if __name__ == '__main__':
    register('****')



登录page类:
# _*_conding:utf-8_*_
# 作者: 杨佳
# 创建时间: 2020/9/3 21:39
# 文件: login
from selenium.webdriver.common.by import By
import time
from scripts import redisconnect
# from bases.base_function import wait_element_visible, get_url
from bases.base_function import BaseFunction


def login(phone_num,url):
    # 隐私条款
    check_box = '//*[@id="logo"]/div[2]/label/span/span'

    phone = '//*[@id="warp3"]/div[1]/input'
    get_code = '//*[@id="warp3"]/div[2]/button'
    verification_code = '//*[@id="warp3"]/div[2]/input'
    login_btn = '//*[@id="button1"]'

    login_success_flag = '//*[@id="headerdiv"]/div[2]'

    base = BaseFunction()
    base.get_url(url)

    base.wait_element_visible((By.XPATH, check_box)).click()

    base.wait_element_visible((By.XPATH, phone)).send_keys(phone_num)
    base.wait_element_visible((By.XPATH, get_code)).click()
    time.sleep(3)
    code = redisconnect.get_login_code(phone_num)
    base.wait_element_visible((By.XPATH, verification_code)).send_keys(code)
    base.wait_element_visible((By.XPATH, login_btn)).click()

    success_flag_elem = base.wait_element_visible((By.XPATH, login_success_flag))
    text = success_flag_elem.get_attribute('innerText')

    base.log_interface()
    base.server_stop()
    return text


if __name__ == '__main__':
    login('****')

不同的网址有不同的逻辑

下篇:主类

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值