以下は、私が学んだことで、検証をスライドひび割れ
「'」 ポールテスト検証スライディングひびの入った ブログログインガーデンの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()の
今日、唯一の学習の朝が、亀裂の摺動検証を知るには、まず全体像を見つけ、その後、シムズ、絶対に良い魔法のスライドセットパスを打破するために欠員、最後のスライドの写真で比較することです。