承接上篇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('****')
不同的网址有不同的逻辑
下篇:主类