• 登录滑块处理


    一些登录页面会有滑块验证,如下图:

    首先尝试用selenium按住滑块,脚本如下:

    el1 = driver.find_element_by_xpath('//*[@id="nc_1_n1z"]')  # 按住滑块
    ActionChains(driver).click_and_hold(on_element=el1).perform()
    ActionChains(driver).move_to_element_with_offset(to_element=el1, xoffset=400, yoffset=0).perform()  # 滑动滑块

    xoffset表示向右移动,向左则为负,yoffset表示向下移动

    但是发现还不行,滑块对自动化程序作了限制,那么只有使用js改window.navigator.webdriver为false了

    script = 'Object.defineProperty(navigator,"webdriver",{get:() => false,});'
    driver.execute_script(script)  # 运行Javascript

    完整代码如下:

    def onwork_login(**param_dict):
        driver = webdriver.Chrome()
        driver.get("要导航到的网址")  # 导航到onwork页面
        driver.find_element_by_xpath('//*[@id="details-button"]').click()  # 点击高级按钮
        driver.find_element_by_xpath('//*[@id="proceed-link"]').click()  # 点击继续前往
        driver.find_element_by_xpath('//*[@id="app"]/div/div[1]/div/div/a[1]').click()  # 点击右上方登录
        driver.find_element_by_xpath('//*[@id="pane-first"]/div/form/div[1]/div/div/input').send_keys(
            param_dict['username'])  # 输入用户名
        driver.find_element_by_xpath('//*[@id="pane-first"]/div/form/div[2]/div/div[1]/input').send_keys(
            param_dict['password'])  # 输入密码
        ''' js改window.navigator.webdriver属性为false'''
        script = 'Object.defineProperty(navigator,"webdriver",{get:() => false,});'
        driver.execute_script(script)  # 运行Javascript
        el1 = driver.find_element_by_xpath('//*[@id="nc_1_n1z"]')  # 按住滑块
        ActionChains(driver).click_and_hold(on_element=el1).perform()
        ActionChains(driver).move_to_element_with_offset(to_element=el1, xoffset=400, yoffset=0).perform()  # 滑动滑块
        time.sleep(1)
        driver.find_element_by_xpath('//*[@id="pane-first"]/div/button/span').click()  # 点击登录

    参考:

    https://blog.csdn.net/qq_41338249/article/details/107622186

    https://blog.csdn.net/weixin_39861627/article/details/111018765?utm_medium=distribute.pc_relevant.none-task-blog-2~default~baidujs_title~default-4.control&spm=1001.2101.3001.4242





  • 相关阅读:
    Jar依赖很多,找不到重复的包??好工具来帮助您
    BHP编译器教程
    MySvn--一个简单单机svn程序源码-delphi开发
    delphi也可以使用C语言脚本 --Picoc脚本语言
    sqlserver,mysql,oracle通用的模拟和改进的全文搜索算法
    EhReport ,CReport改进版本,再次改进 ,V1.31
    Robot Framework(3)——RIDE工具详解
    Robot Framework(2)——简单运行案例
    Robot Framework(1)——环境搭建及安装
    Jenkins(1)—— 部署安装
  • 原文地址:https://www.cnblogs.com/carlvine/p/15134307.html
Copyright © 2020-2023  润新知