UI自动化脚本--解决登录滑动缺口验证

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拿过来,跳过登录滑动缺口验证

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值