8日目クラスのノート

以下は、私が学んだことで、検証をスライドひび割れ

「'」
ポールテスト検証スライディングひびの入った
ブログログインガーデンのURLを:
    https://account.cnblogs.com/signin?returnUrl=https%3A%2F%2Fwww.cnblogs.com%2F 
1、ユーザー名とパスワードを入力し、[OK]をクリックしますログ
2、ポップアップスライドギャップが存在し、検証し、完全な画像取得
の摺動変位を得るために画素を比較することにより、3 
人の行動軌跡をシミュレートするために4 
5をスライドし始める
'「」

からセレンインポート  webdriverを
 から selenium.webdriverのインポートActionChains
 インポートから PIL インポートイメージの
 インポート  ランダム
 DEFのget_distance(画像1、画像2):
    スタート = 60 

    NUM = 60
     印刷(image1.size)
     についてX における範囲(開始、image1.size [0])
         のためのy における範囲(image1.size [1 ]):
            RGB1 = image1.load()[X、Y] 
            RGB2 = image2.load()[X、Y 】
             プリント(RGB1、RGB2)
            R = ABS(RGB1 [0] - RGB2 [0])
            G = ABS(RGB1 [1] -rgb2 [1 ])
            、B = ABS(RGB1 [2] -rgb2 [2 ])


            であれば ない(R <NUM  G <NUM  B < NUM):
                 リターン X-7
 デフcut_image(ドライバ):
    driver.save_screenshot(' snap.png ' 

    画像 = driver.find_element_by_class_name(' geetest_canvas_img ' プリント(image.location)
     プリント(image.size)

 = image.location [ ' X ' ] 
    トップ = image.location [ ' Y ' ]  = [image.size +左側' ' ] 
    湖底 =トップ+ image.size [ ' ' ]
     プリント(左、上、右、湖底)

    image_obj = Image.open(' snap.png ' 


    IMG = image_obj.crop((左、上、右、湖底))

    #1 img.show()
    戻りIMG 

DEF get_image1(ドライバ):
    time.sleep( 2 
    js_code = ''」
            VAR X = document.getElementsByClassName( 'geetest_canvas_fullbg')[0] .style.display = "ブロック"。
    ''」
    (js_code)driver.execute_script 
    画像 = cut_image(ドライバ)
     リターン  画像

デフ:get_image2(ドライバ)
    time.sleep( 2 

    js_codeは = '' ' 
            VAR X = document.getElementsByClassName( "geetest_canvas_fullbg")[0] .style.display = "なし"; 
    ' '' 

    driver.execute_script(js_code)

    画像 = cut_image(ドライバ)
     の戻り  イメージの

DEF (距離を)get_strck_move :
    距離 + = 20である'' ' 
    スライドトラックが作用する
    式を加速する:
        V = V0 + A * T 
    の式から:
        S = 0.5×V0 * T + A *(T ** 2)' '' 初期速度 
    = V0 0 時間 
    T = 0。2 位置 
    S = 0 

    

    

    

    

    

    リストトラックリストスライド前方にスライド 
    move_list = [] 

    位置の加減速のように、中間値を 
    MID =距離/ 3. 5 * #のリスト減速 
    v_listを= [1,2 ,. 3 ,. 4 ] #のサイクリックシフトしながら <Sを距離:
         IF S < :MID
             #がランダム加速度を取得し 
            、A = v_list [random.randint(0、LEN(v_list) - 1 )] のランダム取得減速 
            = -v_list [random.randint(0、 LEN (v_list) - 1 )] '' ' 
        に均一な加速\減速
        V = V0 + *トンの
        変位:
        S = 0.5 * V * T + A *(T ** 2)

    

    
    

        

        

        '' ' 
        初期速度取得 
        V = V0の

        式からを: 
        S1 = V + 0.5 * A * T *(T ** 2 
        S1 = ROUND(S1)  丸め

        #の加速式:
        #1 V = V0 + A * T 
        m_vは= V + A * Tの

        次の計算となるよう、初期速度と現在の加速度/減速度を割り当てる 
        V0が= m_v 

        スライドリストに変位を加える
        move_list.append(S1) 

        から初期スライド変更 
        S = + S1を

    バックリスト、カスタム後方スライドトラック、負でなければならない 
    back_list = [-1、-1、-2 、-3、-2、-1、-1、-2、-3、-2、-1、 -1 ] 

    リターン { ' move_list':move_list、' back_list ' :back_list} 


DEF (メイン):
    ドライバ = webdriver.Chrome()
    driver.implicitly_wait( 10 
    driver.get(' https://account.cnblogs.com/signin?returnUrl=https%3A %2F%2Fwww.cnblogs.com%2F ' 
    USER_INPUT = driver.find_element_by_id(' LoginNameに' 
    user_input.send_keys(' ****) 
    time.sleep(0.2 

    pwd_input = driver.find_element_by_id(' パスワード'
    pwd_input.send_keys(' ******) 
    time.sleep(2 

    login_submit = driver.find_element_by_id(' submitBtn ' 
    login_submit.click()
    画像1 = get_image1(ドライバ)
     画像1 = get_image1(ドライバ) 
    画像2 = get_image2(ドライバ)
    距離 = get_distance(画像1、画像2)
     プリント(距離)

    move_dict = get_strck_move(距離)
    move_list = move_dict [ ' move_list ' ] 
    back_list = move_dict [' back_list ' ] 

    move_tag = driver.find_element_by_class_name(' geetest_slider_button ' 

    ActionChains(ドライバ).click_and_hold(move_tag).perform()
    のために移動move_list:
        ActionChains(ドライバ).move_by_offset(XOFFSET =移動、YOFFSET = 0).perform( )
        time.sleep( 0.1 
    time.sleep( 0.1 

    のための背面back_list:
        ActionChains(ドライバ).move_by_offset(XOFFSET =バック、YOFFSET = 0).perform()
        time.sleep( 0.1 

    ActionChains(ドライバ).move_by_offset(XOFFSET = 3、YOFFSET = 0).perform()
    ActionChains(ドライバ).move_by_offset(XOFFSET = -3、YOFFSET = 0).perform()
    time.sleep( 0.1 

    ActionChains(ドライバ)。リリース()()を実行する。
    time.sleep( 100 

であれば __name__ == ' __main__ ' 
     main()の

今日、唯一の学習の朝が、亀裂の摺動検証を知るには、まず全体像を見つけ、その後、シムズ、絶対に良い魔法のスライドセットパスを打破するために欠員、最後のスライドの写真で比較することです。

おすすめ

転載: www.cnblogs.com/-zcj/p/11056487.html