Commit eade44e0 by 齐文博

create

parent e0d05727
# 默认忽略的文件
/shelf/
/workspace.xml
WeChat_QR_code_scanning
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="PyUnresolvedReferencesInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredIdentifiers">
<list>
<option value="str.*" />
<option value="set.*" />
</list>
</option>
</inspection_tool>
</profile>
</component>
\ No newline at end of file
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.10 (venv)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.10 (kuangjia) (2)" project-jdk-type="Python SDK" />
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/tpshop_UI.iml" filepath="$PROJECT_DIR$/.idea/tpshop_UI.iml" />
</modules>
</component>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>
\ No newline at end of file
import selenium.webdriver.support.select
from selenium.webdriver import ActionChains
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.select import Select
from kuangjia.common.untils import DriverTools
class BasePage:
def __init__(self, type="web"):
if type == "web":
self.driver = DriverTools.get_driver()
elif type == "app":
self.driver = DriverTools.get_app_driver()
else:
print("页面类型输入错误,请输入web/app")
# 查找元素
def find_ele(self, loc, time=10, fre=1):
ele = WebDriverWait(self.driver, time, fre).until(lambda x: x.find_element(*loc))
return ele
# 输入内容
def input_text(self, loc, value):
ele = self.find_ele(loc)
ele.clear()
ele.send_keys(value)
# 滚动条
def scroll(self, x, y):
js = "window.scrollTo({},{})".format(x, y)
self.driver.execute_script(js)
# 下拉框文本选择
def select_text(self, loc, text):
select = Select(self.find_ele(loc))
select.select_by_visible_text(text)
# 获取标题
def get_title(self):
title = self.driver.title
return title
# 获取url
def get_url(self):
url = self.driver.current_url
return url
# 鼠标悬停
def mouse_stop(self, loc):
action = ActionChains(self.driver)
action.move_to_element(self.find_ele(loc))
action.perform()
# 获取弹出框文本内容
def alert_text(self):
alert = self.driver.switch_to.alert
text = alert.text
return text
import json
from selenium.webdriver.support.wait import WebDriverWait
from common.untils import DriverTools
from config import file_path
def get_text(loc, time=10, fre=1):
ele = WebDriverWait(DriverTools.get_driver(), time, fre).until(lambda x: x.find_element(*loc))
return ele.text
def get_app_text(loc, time=10, fre=1):
ele = WebDriverWait(DriverTools.get_app_driver(), time, fre).until(lambda x: x.find_element(*loc))
return ele.text
def get_texts(loc, time=10, fre=1):
eles = WebDriverWait(DriverTools.get_driver(), time, fre).until(lambda x: x.find_elements(*loc))
ele_list = []
for ele in eles:
ele_list.append(ele.text)
return ele_list
def get_app_texts(loc, time=10, fre=1):
eles = WebDriverWait(DriverTools.get_app_driver(), time, fre).until(lambda x: x.find_elements(*loc))
ele_list = []
for ele in eles:
ele_list.append(ele.text)
return ele_list
def read_json(file_name):
path = file_path + "/data/" + file_name
with open(path, "r", encoding="utf-8") as f:
data = json.load(f)
list1 = []
for i in data:
temp = tuple(i.values())
list1.append(temp)
return list1
import time
from selenium import webdriver
from appium import webdriver as appwebdriver
from kuangjia.config import appium_server_url, caps
class DriverTools:
__driver = None
__app_driver = None
# 初始化web驱动
@classmethod
def get_driver(cls):
if cls.__driver is None:
cls.__driver = webdriver.Chrome()
cls.__driver.maximize_window()
cls.__driver.implicitly_wait(10)
return cls.__driver
# 关闭web驱动
@classmethod
def quit_driver(cls):
if cls.__driver:
cls.__driver.quit()
cls.__driver = None
# 打开app驱动
@classmethod
def get_app_driver(cls):
if cls.__app_driver is None:
cls.__app_driver = appwebdriver.Remote(appium_server_url, caps)
cls.__app_driver.implicitly_wait(10)
return cls.__app_driver
# 关闭app驱动
@classmethod
def quit_app_driver(cls):
if cls.__app_driver:
cls.__app_driver.quit()
cls.__app_driver = None
if __name__ == '__main__':
# 测试web驱动
DriverTools.get_driver().get('https://rays7.5rs.me/login')
time.sleep(2)
# DriverTools.quit_driver()
# DriverTools.get_driver().get('http://www.jd.com')
# DriverTools.quit_driver()
# # 测试app驱动
# DriverTools.get_app_driver()
# time.sleep(2)
# DriverTools.quit_app_driver()
import os
file_path = os.path.dirname(__file__)
caps = {
"platformName": "android", # 平台名
"platformVersion": "7.0", # 平台版本号
"deviceName": "emulator-5554", # 设备名
"appPackage": "com.android.settings", # 启动应用包名
"appActivity": "com.android.settings.Settings" # 启动应用界面名
}
appium_server_url = "http://127.0.0.1:4723/wd/hub"
import time
from selenium.webdriver.common.by import By
from kuangjia.Base.BasePage import BasePage
from kuangjia.common.untils import DriverTools
from kuangjia.paga.CreatePage import Create
from kuangjia.paga.LoginPage import Login
class Code(BasePage):
def __init__(self):
super().__init__('web')
# 书小二码
self.reader_digital = (By.XPATH, "//div[@class='select-list']//div[1]//div[2]")
# 入驻公众号
self.reader_account = (By.ID, "accountSettingId")
self.reader_official = (By.XPATH, "/html/body/div[3]/div/div/div/div[2]/div[1]/div/div/div[2]/div/i")
# 创建按钮
self.reader_OR = (By.XPATH, "/html/body/div/div/section/div[1]/div[2]/div/div[2]/div[2]/button[2]")
# 配置服务
self.reader_give = (By.XPATH, "//body//button[2]")
def code(self):
self.find_ele(self.reader_digital).click()
time.sleep(1)
self.find_ele(self.reader_account).click()
time.sleep(1)
self.find_ele(self.reader_official).click()
time.sleep(1)
self.find_ele(self.reader_OR).click()
time.sleep(1)
self.find_ele(self.reader_give).click()
time.sleep(1)
import time
from lib2to3.pgen2 import driver
from selenium.webdriver.common.by import By
from kuangjia.Base.BasePage import BasePage
from kuangjia.common.untils import DriverTools
from kuangjia.paga.LoginPage import Login
class Create(BasePage):
def __init__(self):
super().__init__('web')
# 点击创建书刊
self.reader_book = (By.XPATH, '/html/body/div[1]/div/section/div[1]/div[2]/div/div/div/div[1]/div[3]/div/div['
'2]/div/div/div/div/div/div[1]/button/span')
self.reader_book1 = (By.XPATH, "/html/body/div[1]/div/section/div[1]/div[2]/div/div[2]/div/form/div["
"1]/div/div[2]/div/div/div")
# 书刊分类-教辅
self.reader_book2 = (By.XPATH, "//ul[1]//li[1]//div[2]//i[1]")
# 书刊分类-K12同步教材教辅
self.reader_book3 = (By.XPATH, "//ul[2]//li[1]//div[2]//i[1]")
# 书刊分类-同步教案
self.reader_book4 = (By.XPATH, "//ul[3]//li[3]//div[1]")
# 书刊标签-三年级
self.reader_graLabelId = (By.ID, "graLabelId")
self.reader_book6 = (By.XPATH, "/html/body/div[3]/div/div/div/div[2]/div[1]/div/div/div[5]/div")
# 书刊标签-数学
self.reader_subLabelId = (By.ID, "subLabelId")
self.reader_book7 = (By.XPATH, "/html[1]/body[1]/div[4]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div["
"2]/div[1]")
# 书刊标签-人教版
self.reader_verLabelId = (By.ID, "verLabelId")
self.reader_book8 = (By.XPATH, "/html/body/div[5]/div/div/div/div[2]/div[1]/div/div/div[1]")
# 书刊标签-全一册
self.reader_volLabelId = (By.ID, "volLabelId")
self.reader_book9 = (By.XPATH, "/html[1]/body[1]/div[6]/div[1]/div[1]/div[1]/div[2]/div[1]/div[1]/div[1]/div["
"1]/div[1]")
# 书刊条形码-其它
self.reader_other = (By.XPATH, "/html/body/div[1]/div/section/div[1]/div[2]/div/div[2]/div/form/div["
"3]/div/div[2]/div/div/span/div[1]/div/div/div/div/div/label[4]")
# 输入isbn
self.reader_isbn = (By.ID, "isbn")
#
self.reader_button = (By.XPATH, "/html/body/div[1]/div/section/div[1]/div[2]/div/div[2]/div/form/div["
"4]/div/div/div/div/button")
# 书刊名称
self.reader_name = (By.ID, "autoTextarea")
# 保存
self.reader_primary = (By.XPATH, "/html/body/div[1]/div/section/div[1]/div[2]/div/div[2]/div/div/button[2]")
def create(self):
self.find_ele(self.reader_book).click()
time.sleep(1)
self.find_ele(self.reader_book1).click()
time.sleep(1)
self.find_ele(self.reader_book2).click()
time.sleep(1)
self.find_ele(self.reader_book3).click()
time.sleep(1)
self.find_ele(self.reader_book4).click()
time.sleep(1)
self.find_ele(self.reader_graLabelId).click()
time.sleep(1)
self.find_ele(self.reader_book6).click()
time.sleep(1)
self.find_ele(self.reader_subLabelId).click()
time.sleep(1)
self.find_ele(self.reader_book7).click()
time.sleep(1)
self.find_ele(self.reader_verLabelId).click()
time.sleep(1)
self.find_ele(self.reader_book8).click()
time.sleep(1)
self.find_ele(self.reader_volLabelId).click()
time.sleep(1)
self.find_ele(self.reader_book9).click()
time.sleep(1)
self.find_ele(self.reader_other).click()
time.sleep(1)
self.find_ele(self.reader_isbn).send_keys(int(time.time() * 1000))
time.sleep(1)
self.find_ele(self.reader_button).click()
time.sleep(1)
self.find_ele(self.reader_name).send_keys("UI自动化书刊")
time.sleep(1)
self.find_ele(self.reader_primary).click()
import time
from selenium.webdriver.common.by import By
from kuangjia.Base.BasePage import BasePage
from kuangjia.common.untils import DriverTools
from kuangjia.paga.CodePage import Code
from kuangjia.paga.CreatePage import Create
from kuangjia.paga.LoginPage import Login
class Give(BasePage):
def __init__(self):
super().__init__('web')
# 添加服务
self.reader_increase = (By.XPATH, "//button[@class='ant-btn ant-btn-primary ant-btn-lg']//span")
# AI能力
self.reader_AI = (By.ID, "rc-tabs-2-tab-9")
# 全选
self.reader_all = (By.XPATH, "//div[@class='ant-table-selection']//input[@class='ant-checkbox-input']")
# 第2页
self.reader_page1 = (By.XPATH, "//a[contains(text(),'2')]")
# 第3页
self.reader_page2 = (By.XPATH, "//a[contains(text(),'3')]")
# 第4页
self.reader_page3 = (By.XPATH, "//a[contains(text(),'4')]")
# 第5页
self.reader_page4 = (By.XPATH, "//a[contains(text(),'5')]")
# 确定按钮
self.reader_determine = (By.XPATH, "/html[1]/body[1]/div[3]/div[1]/div[2]/div[1]/div[2]/div[3]/button["
"2]/span[1]")
# 保存按钮
self.reader_save = (By.XPATH, "//button[@class='ant-btn ant-btn-primary ant-btn-lg save-btn']//span")
def give(self):
self.find_ele(self.reader_increase).click()
time.sleep(1)
self.find_ele(self.reader_AI).click()
time.sleep(1)
self.find_ele(self.reader_all).click()
time.sleep(1)
self.find_ele(self.reader_page1).click()
time.sleep(1)
self.find_ele(self.reader_all).click()
time.sleep(1)
self.find_ele(self.reader_page2).click()
time.sleep(1)
self.find_ele(self.reader_all).click()
time.sleep(1)
self.find_ele(self.reader_page3).click()
time.sleep(1)
self.find_ele(self.reader_all).click()
time.sleep(1)
self.find_ele(self.reader_page4).click()
time.sleep(1)
self.find_ele(self.reader_all).click()
time.sleep(1)
self.find_ele(self.reader_determine).click()
time.sleep(1)
self.find_ele(self.reader_save).click()
if __name__ == '__main__':
DriverTools.get_driver().get('https://rays7.5rs.me/login')
Login().login()
Create().create()
Code().code()
Give().give()
from selenium.webdriver.common.by import By
from kuangjia.Base.BasePage import BasePage
from kuangjia.common.untils import DriverTools
class Login(BasePage):
def __init__(self):
super().__init__('web')
# 登录账号
self.reader_username = (By.ID, 'userName')
# 登录密码
self.follow_password = (By.ID, 'pwd')
# 登录按钮
self.person_login = (
By.XPATH, '/html/body/div/div/div/div[1]/div[3]/div/div/div[3]/form/div[4]/div/div/div/div/button')
def login(self):
self.find_ele(self.reader_username).send_keys("黑泽爽子")
self.find_ele(self.follow_password).send_keys("Rmb88888")
self.find_ele(self.person_login).click()
[pytest]
disable_test_id_escaping_and_forfeit_all_rights_to_community_support = True
addopts = -s --html=report/admin/test_admin_login.html --self-contained-html
testpaths = ./script
python_files = test_admin_login.py
python_classes = Test*
python_functions = test*
\ No newline at end of file
import time
import action as action
# 安装selenium库
from selenium import webdriver
from selenium.webdriver.common.by import By
class Login:
# 把驱动对象存到成员变量中,方便调用
def __init__(self):
self.driver = webdriver.Edge()
# 打开网页
self.driver.get('https://adviser.raysgo.com/login')
self.driver.maximize_window()
# 账号输入框的元素对象
def find_user_name(self):
ele = self.driver.find_element(By.XPATH,
'/html/body/div/div/div[1]/div/section/div/div[2]/form/div/div[1]/div/div/input')
return ele
# 密码输入框的元素对象
def find_password(self):
ele = self.driver.find_element(By.XPATH,
'/html/body/div/div/div[1]/div/section/div/div[2]/form/div/div[2]/div/div/input')
return ele
# 登录按钮的元素对象
def find_button(self):
ele = self.driver.find_element(By.XPATH, '/html/body/div/div/div[1]/div/section/div/div[2]/form/div/div[4]')
return ele
# 创建现代纸书按钮
def find_create(self):
ele = self.driver.find_element(By.XPATH,
'/html/body/div[1]/div/div[1]/div[2]/main/div/div/div[1]/div/div/div[2]/div[3]/div/div[1]/button')
return ele
# 选择书刊分类
def find_book(self):
ele = self.driver.find_element(By.XPATH,
'/html/body/div[1]/div/div[1]/div[2]/main/div/div/div[1]/div/div/div/section/div/div/section/div/div/div[2]/div/span/i')
return ele
# 标签1
def find_label1(self):
ele = self.driver.find_element(By.XPATH,
'/html/body/div[1]/div/div[1]/div[2]/main/div/div/div[1]/div/div/div/section/div/div/section/div/div/div[2]/div/div/div/div/div/ul[1]/li[1]')
return ele
# 标签2
def find_label2(self):
ele = self.driver.find_element(By.XPATH,
'/html/body/div[1]/div/div[1]/div[2]/main/div/div/div[1]/div/div/div/section/div/div/section/div/div/div[2]/div/div/div/div/div/ul[2]/li[10]')
return ele
# 标签3
def find_label3(self):
ele = self.driver.find_element(By.XPATH,
'/html/body/div[1]/div/div[1]/div[2]/main/div/div/div[1]/div/div/div/section/div/div/section/div/div/div[2]/div/div/div/div/div/ul[3]/li[1]')
return ele
# 关闭浏览器
def quit(self):
self.driver.quit()
login = Login()
time.sleep(3)
login.find_user_name().send_keys("三味书屋")
time.sleep(3)
login.find_password().send_keys("Rmb123456")
time.sleep(3)
login.find_button().click()
time.sleep(4)
login.find_create().click()
time.sleep(3)
login.find_book().click()
time.sleep(3)
login.find_label1().click()
time.sleep(3)
login.find_label2().click()
time.sleep(3)
login.find_label3().click()
time.sleep(3)
login.quit()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment