Windows 7でPython(https://pypi.python.org/pypi/selenium)でセレンパッケージを使用しています。Facebookアカウントにログインしようとすると、次のsend_keys
コマンドを使用します。
elem = browser.find_element_by_name("email")
elem.send_keys(email);
elem = browser.find_element_by_name("pass")
elem.send_keys(password);
2番目がパスワードの最初の文字を削除するため、ログインは明らかに失敗send_keys
します(パスワード文字を電子メールフィールドに直接送信することでこれを見つけました.
どうしたの?入力フィールドにキーを送信するような単純なことをセレンができないのはなぜですか? これは、自動スクリプトを拒否するために Facebook によってコード化された何らかの保護手段ですか?
アルファベット全体を送信しようとしたところ、次のようになりました。
abcdefghijklmnopqrstuvwxyzBCDFGIKLNOQSTWX
何文字抜けてるか気になる…
アップデート
どうやら、この問題は facebook とは何の関係もなく、chrome ドライバーに関係しているようです。
次の簡単なコードを送信すると
browser = webdriver.Chrome()
browser.get("https://www.google.com") # Load page
elem = browser.find_element_by_name("q") # Find the query box
query= "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
elem.send_keys(query)
Chrome ドライバーでは BCDFGIKLNOQSTWX を取得します A、E、H ... Y、Z が欠落していることに注意してください firefox ドライバーでは (browser = webdriver.Chrome()
次のように置き換えbrowser = webdriver.Firefox()
ます