PythonベースのSelenium自動化(3):認証コードの切り取りと識別を実現

2069 ワード

ここ数日は本当に忙しくて煙が出て、たくさんのプロジェクトが集まっていて、昼も夜も残業していません.怠惰な上に、勉強の進度はずっとあまり進んでいない.この文章は主にこの間に時間を割いて実現した機能を紹介し、少し啓発される必要があることを望んでいる.
UIレイヤの自動化に基づいて、いくつかのピットがあり、ほとんどの人が遭遇します.そのうちの1つは、登録やログイン時に検証コードが必要です.検証コード時に動的に生成されるためです.アクセスするたびに違いますが、そうすると、スクリプトを使ってログインするのは面倒なことになります.現在、いくつかの解決策があります:1、社内のプロジェクトに対して2つの方法があり、(1)万能検証コードを設定し、この検証コードを記入するたびに検証することができます(2)携帯電話番号をホワイトリストに設定し、特定の携帯電話番号を入力すれば、検証コード2を検証しません.外部項目については、以下の方法(3)を用いて検証コード部分を切り取り、本明細書で主に説明する(3)実装手順をピクチャ識別技術を用いて識別することができる.参照のためのステップは、認証コードの切り取り+認証コードの識別1、認証コードselenium webdriverのapiの切り取りに直接的に示す方法に分けられる.ただし、フルスクリーンであるため、要素の切り取りを実現するには、1を迂回し、要素のサイズ、要素の座標2を取得し、スクリーン全体を切り取る3、要素の座標とサイズに応じて、切り取る領域4を位置決めし、画像ライブラリを使用して要素領域を切り取るpythonコードを実装する必要があります.
        driver.get_screenshot_as_file('a.jpg')
        location = driver.find_element_by_id('validate-img').location
        size = driver.find_element_by_id('validate-img').size
        left = location['x']
        top =  location['y']
        right = location['x'] + size['width']
        bottom = location['y'] + size['height']
        a = Image.open("a.jpg")
        im = a.crop((left,top,right,bottom))
        im.save('a.jpg')
        time.sleep(1)

コードには注釈の部分がなく、説明すると上の4つのステップです.
二、認証コードを識別する本文はどのように検証コードを実現するかを設計しないで、この部分の任務は私が第三者のAPIを選んで実現したのです.(必要に応じて「スーパーイーグル認証コード識別」を検索することができます)結局術業は専攻があって、OCR識別の同級生をするならば、本文は何の参考価値もなくて、ここで省略します