首页 > 其他分享 >菜鸟金融登录页面的滑动验证码,selenium写法

菜鸟金融登录页面的滑动验证码,selenium写法

时间:2023-01-11 10:38:02浏览次数:55  
标签:菜鸟 self driver 验证码 element slide ID find selenium

# 获取拖动按钮位置并拖动
    def slide_auth(self):
        try:
            time.sleep(random.randint(6, 8))
            # check have slide verify elements or not
            if (self.driver.find_element(By.ID, "baxia-password")).is_displayed():
                self.driver.switch_to.frame('baxia-dialog-content')
                element = self.driver.find_element(By.ID, "nc_1_n1z")
                slide_bar = self.driver.find_element(By.ID, "nc_1__scale_text")
                action = ActionChains(self.driver)
                action.move_to_element(element).pause(1).click_and_hold(element).pause(1).move_by_offset(
                    slide_bar.size['width'] - element.size['width'], 0).pause(1).release()  # mobile slider
                action.perform()
                MessageToSlack.post_message_to_slack("Slide the verification bar")
                self.driver.switch_to.parent_frame()
                time.sleep(random.randint(4, 6))
                if (self.driver.find_element(By.ID, "baxia-password")).is_displayed():
                    counter1 = 0
                    while (self.driver.find_element(By.ID, "baxia-password")).is_displayed() and counter1 < 6:
                        self.driver.switch_to.frame('baxia-dialog-content')
                        wrapper = self.driver.find_element(By.ID, "nocaptcha")
                        wrapper.click()
                        time.sleep(random.randint(2, 3))
                        element = self.driver.find_element(By.ID, "nc_1_n1z")
                        slide_bar = self.driver.find_element(By.ID, "nc_1__scale_text")
                        action = ActionChains(self.driver)
                        action.move_to_element(element).pause(1).click_and_hold(element).pause(1).move_by_offset(
                            slide_bar.size['width'] - element.size['width'], 0).release()  # mobile slider
                        action.perform()
                        MessageToSlack.post_message_to_slack("Slide the verification bar")
                        self.driver.switch_to.parent_frame()
                        time.sleep(random.randint(4, 6))
                        counter1 += 1
                    counter1 = 0

                if (self.driver.find_element(By.ID, "baxia-password")).is_displayed():
                    raise Exception("Still cannot  pass the slide certification after 5 attempt")

        except Exception as s:
            self.driver.get_screenshot_as_file(
                "./ScreenCap/" + datetime.datetime.now().strftime("%Y%m%d_%H%M%p") + ".png")
            MessageToSlack.post_message_to_slack(str(s))
            self.teardown_method
            sys.exit()

 

标签:菜鸟,self,driver,验证码,element,slide,ID,find,selenium
From: https://www.cnblogs.com/kaka0318/p/17043010.html

相关文章

  • 【playwright】菜鸟金融后台打开登陆
    fromplaywright.sync_apiimportPlaywright,sync_playwright,expectdefrun(playwright:Playwright)->None:user_data_dir="/Users/kaka/Library/Applic......
  • Selenium多浏览器处理
    实战演示Python版本#导入依赖importosfromseleniumimportwebdriverdeftest_browser():#使用os模块的getenv方法来获取声明环境变量browserbrowser=os.geten......
  • Selenium 测试用例编写
    ​​原文链接​​编写Selenium测试用例就是模拟用户在浏览器上的一系列操作,通过脚本来完成自动化测试。编写测试用例的优势:开源,免费。支持多种浏览器IE,Firefox,Chrome,Safar......
  • 谷歌开源kaptcha图形验证码
    Kaptcha框架介绍Kaptcha框架是谷歌开源的一个可高度配置的实用验证码生成工具验证码的字体/大小/颜色验证码内容的范围(数字,字母,中文汉字!)验证码图片的大小,边框,边框......
  • thinkphp验证码一直错误
    欢迎关注我的公众号:夜说猫,让贫穷的程序员不靠打代码也能吃饭~在做验证码登录到时候,遇到奇怪的问题,一直报错(明明是对的)后来发现,cookie一直是空的,这里正常来讲应......
  • 【playwright】菜鸟金融后台打开登陆
    fromplaywright.sync_apiimportPlaywright,sync_playwright,expectdefrun(playwright:Playwright)->None:user_data_dir="/Users/kaka/chrome"ar......
  • Python+Selenium
    python+Selenium学习Selenium组件SeleniumIDE:是一个测试集成开发环境,可以结合FF录制脚本,并对脚本编辑和调试特点:1.很容易在页面上就行录制​2.能自动通......
  • 手写获取手机验证码按钮-适用vue,uniapp
    template<uni-forms-itemlabel="验证码"name="code"style="position:relative;"><inputmaxlength="6"type="number......
  • Selenium57-使用fixture
    第四版使用fixturetest_后台_双创_基础设置_赛区管理_添加赛区_case_v4_1.py使用fixture来做前置和后置处理。使用yield来分隔前置后后置处理步骤。定义prepare_and_exit方......
  • Selenium58-优化fixture
    v4_1问题代码运行效率较低:prepare_and_exit包含所有前置和后置步骤,每组测试数据都从重新启动浏览器开始到关闭浏览器结束。。思考:是否可以省略每组数据测试时的重新启动浏......