import time
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.keys import Keys
def login():
for i in range(1):
with webdriver.Chrome() as driver:
wait = WebDriverWait(driver, 10)
url = 'xxxxxxxxxxxxx'
driver.get(url)
driver.maximize_window()
time.sleep(1)
findInputs = driver.find_elements(By.TAG_NAME, 'input')
username = findInputs[0]
username.send_keys("username")
time.sleep(1)
password = findInputs[1]
password.send_keys("password")
time.sleep(2)
driver.add_cookie({'name': 'tokenName', 'value': 'token'})
driver.add_cookie({'name': 'tokenValue', 'value': '5d6c8bf59b824619aa6aa748ab352276'})
driver.add_cookie({'name': 'token', 'value': '5d6c8bf59b824619aa6aa748ab352276'})
cookies = driver.get_cookies()
print(cookies)
driver.get("xxxxxxxxxxxxxxxx")
time.sleep(2)
driver.find_element(By.CLASS_NAME, 'list-item__box').click()
time.sleep(2)
driver.find_element(By.ID, 'tab-model_charts').click()
time.sleep(2)
preview = driver.find_elements(By.CLASS_NAME,'theme-state__clickable')
for previews in preview:
try:
if "预览" in previews.text:
previews.click()
break
except:
print("Error:Element retrieval failure")
time.sleep(2)
element_input = driver.find_elements(By.CLASS_NAME,'el-form-item__content')[0].find_element(By.TAG_NAME,'input')
time.sleep(1)
element_input.send_keys("幸福蓝海影院发展")
time.sleep(5)
element = driver.find_elements(By.CLASS_NAME,'item')[0].find_elements(By.CLASS_NAME,'el-button')
element[0].click()
time.sleep(1)
element[1].click() # 重置
time.sleep(3)
for i in range(20):
element[1].send_keys(Keys.DOWN)
time.sleep(1)
for i in range(20):
element[1].send_keys(Keys.UP)
time.sleep(1)
driver.find_element(By.CLASS_NAME,'el-dialog__close').click() # 关闭页面
time.sleep(2)
edit = driver.find_elements(By.CLASS_NAME, 'theme-state__clickable')
for edits in edit:
try:
if "编辑" in edits.text:
edits.click()
break
except:
print("Error:Element retrieval failure")
time.sleep(2)
countchart = driver.find_elements(By.CLASS_NAME, 'content-left__box-item')
countchart[0].click()
time.sleep(2)
for a in range(1):
wait = WebDriverWait(driver, 10, 0.5)
findInputs = wait.until(EC.presence_of_element_located((By.CLASS_NAME, "header-input")))
findInputs.find_element(By.TAG_NAME, 'input').send_keys('图表自动化测试')
time.sleep(2)
driver.find_element(By.CLASS_NAME, 'content').find_element(By.TAG_NAME, 'input').click()
time.sleep(1)
testlist = driver.find_elements(By.CLASS_NAME, 'el-select-dropdown__item')
# for循环定位具体选项
for name in testlist:
if "酒店排名" in name.text:
name.click()
break
time.sleep(2)
"""
field = driver.find_elements(By.CLASS_NAME,'fields-box__list-item')
time.sleep(1)
ac = ActionChains(driver)
sourcenew = field[2]
target = driver.find_element(By.CLASS_NAME, 'option-box').find_element(By.CLASS_NAME, 'option-box__item').find_element(By.CLASS_NAME, 'el-form-item__content').find_element(By.CLASS_NAME,'drag-end')
ac.click_and_hold(sourcenew).perform()
ac.move_to_element(target).release().perform()
time.sleep(5)
for source in field:
if '名称' in source.text:
sourcenew = source
target = driver.find_element(By.CLASS_NAME, 'el-form-item__content')
ac.click_and_hold(sourcenew).perform()
ac.move_to_element(target).release().perform()
time.sleep(10)
"""
driver.find_elements(By.CLASS_NAME, 'el-radio-button__inner')[3].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME, 'el-radio-button__inner')[2].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME, 'el-radio-button__inner')[1].click()
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'el-switch')[0].click() # 打开总计开关
time.sleep(1)
"""
for switch in range(4):
driver.find_elements(By.CLASS_NAME,'el-switch')[switch].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME,'el-switch')[1].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME,'el-switch')[2].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME,'el-switch')[3].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME,'el-switch')[4].click()
time.sleep(3)
"""
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[1].click() # 图例展开
time.sleep(2)
"""
driver.find_elements(By.CLASS_NAME,'ant-collapse-item')[1].find_elements(By.CLASS_NAME,'el-radio-button')[1].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME,'ant-collapse-item')[1].find_elements(By.CLASS_NAME,'el-radio-button')[2].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME,'ant-collapse-item')[1].find_elements(By.CLASS_NAME,'el-radio-button')[3].click()
time.sleep(2)
"""
i = 1
while i <= 3:
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[1].find_elements(By.CLASS_NAME,'el-radio-button')[i].click()
time.sleep(1)
i += 1
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[2].click() # X轴刻度
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[2].find_element(By.CLASS_NAME,'el-input__inner').send_keys("X轴标题是:图表模型测试啦!!!")
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[3].click() # Y轴刻度
time.sleep(2)
Y = driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[3].find_elements(By.CLASS_NAME,'el-input__inner')
Y[1].send_keys("Y轴标题是:图表UI自动化测试!!!")
time.sleep(1)
Y[2].send_keys("100")
time.sleep(1)
Y[3].send_keys("10")
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[4].click() # 数据标签
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[4].find_elements(By.CLASS_NAME, 'el-radio-button')[1].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[4].find_elements(By.CLASS_NAME, 'el-radio-button')[2].click()
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[5].click() # 显示单位
time.sleep(2)
show = driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[5].find_elements(By.CLASS_NAME,'el-input__inner')
show[0].click()
time.sleep(3)
list = driver.find_elements(By.CLASS_NAME, 'el-select-dropdown__item')
for x in list:
try:
if "千分比" in x.text:
x.click()
break
except:
print("Error:获取元素失败")
time.sleep(2)
time.sleep(3)
show[1].clear()
show[1].send_keys("9")
time.sleep(2)
driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[6].click() # 图形颜色
time.sleep(3)
selects = driver.find_elements(By.CLASS_NAME, 'ant-collapse-item')[6].find_elements(By.TAG_NAME, 'input')
selects[0].click()
time.sleep(2)
for i in range(6):
driver.find_elements(By.CLASS_NAME, 'colorPicker-box__item')[i].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME, 'colorPicker-box__item')[3].click()
time.sleep(1)
"""
driver.find_elements(By.CLASS_NAME,'colorPicker-box__item')[0].click()
time.sleep(1)
driver.find_elements(By.CLASS_NAME,'colorPicker-box__item')[1].click()
time.sleep(1)
"""
confirm = driver.find_elements(By.CLASS_NAME, 'theme-button')
time.sleep(2)
for confirmButton in confirm:
try:
if "确定" in confirmButton.text:
confirmButton.click()
break
except:
print("Error:获取元素失败")
time.sleep(2)
save = driver.find_elements(By.CLASS_NAME, 'edit-chartsModel__header')
save[1].find_element(By.CLASS_NAME, 'svg-icon').click()
time.sleep(5)
addsizer = driver.find_elements(By.CLASS_NAME,'content-left__box-item')
addsizer[1].click()
time.sleep(2)
# addsizer = driver.find_elements(By.CLASS_NAME,'content-left__box-item')
# addsizer[1].click()
# time.sleep(2)
addcomponent = driver.find_elements(By.CLASS_NAME,'el-button')
for i in addcomponent:
if "添加组件" in i.text:
i.click()
break
time.sleep(2)
componentinput = driver.find_elements(By.CLASS_NAME,'fields-box__head')[0].find_element(By.TAG_NAME,'input')
time.sleep(1)
componentinput.send_keys("通知公告")
time.sleep(1)
componentinput.clear()
time.sleep(3)
checkall = driver.find_elements(By.CLASS_NAME,'sql-fliter-fields-box')
for i in checkall:
try:
if "全选" in i.text:
i.click()
break
except:
print("Error:Element retrieval failure")
time.sleep(2)
delete = driver.find_elements(By.CLASS_NAME,'component-box')
delete[0].click()
time.sleep(2)
deletion = driver.find_elements(By.CLASS_NAME,'el-button')
for i in deletion:
try:
if "确定" in i.text:
i.click()
break
except:
print("Error:Element retrieveal failure")
time.sleep(5)
rename = driver.find_elements(By.CLASS_NAME,'col-item')[0].find_element(By.TAG_NAME,'input')
rename.clear()
time.sleep(2)
rename.send_keys("名称搜索框")
time.sleep(2)
driver.find_elements(By.CLASS_NAME,'col-item')[3].find_element(By.TAG_NAME,'input').click()
time.sleep(3)
selects =driver.find_elements(By.CLASS_NAME,'el-select-dropdown__item')
for i in selects:
try:
if "名称" in i.text:
i.click()
break
except:
print("Error:Element retrieval failure")
time.sleep(3)
saves = driver.find_elements(By.CLASS_NAME,'header-btns')
saves[0].find_element(By.CLASS_NAME,'svg-icon')
time.sleep(2)
for i in saves:
if "保存" in i.text:
i.click()
break
time.sleep(3)
pagesave = driver.find_elements(By.CLASS_NAME,'el-col')
pagesave[3].find_element(By.CLASS_NAME,'el-button').find_element(By.CLASS_NAME,'svg-icon')
pagesave = driver.find_elements(By.CLASS_NAME,'el-dialog__header')
pagesave[0].find_element(By.CLASS_NAME,'el-button').find_element(By.CLASS_NAME,'svg-icon').click()
time.sleep(6)
if __name__ == '__main__':
login()
解决滑动缺口验证
# 将cookie和token拿过来,跳过登录滑动缺口验证