プロが教える店舗&オフィスのセキュリティ対策術

ログインする際に、IDとパスワードと画像に埋め込まれたアルファベットや数字を解読して入力させるサイトがあります。このようなサイトをセレニウムで自動ログインするにはどうすればよいのですか?

A 回答 (1件)

残念ながら、画像に記載された文字列を解読することは、現状Seleniumに限らず、公開されているいずれのライブラリでも不可能です。


これらはCAPTCHAと呼ばれる技術で、ログインを行うユーザーがbotでないことを確認するためのセキュリティ対策であり、自動ログインをさせないために利用されています。
(厳密にはディープラーニングを用いて認証を突破した事例があるため、不可能ではありませんが……)


ご存じかもしれませんが、以下にIDとパスワードのみの認証を自動化するSeleniumのサンプルコード(JavaScript)を記載しています。
一般的なformは以下のコードでログインができます。


const chrome = webdriver.Capabilities.chrome();
chrome.set('chromeOptions', {
args: ['--no-sandbox', '--disable-gpu', `--window-size=1980,1200`]
});

(async () => {

// ブラウザを起動
const driver = await new Builder().withCapabilities(chrome).build();

// ログイン画面へ遷移
await driver.get('URL');
await driver.wait(() => documentInitialised(), 10000);

// ユーザー名・パスワードを入力
//(user_login、user_passはフォームの要素名、username、passwordはログインに使用するユーザー名とパスワード)
await driver.findElement(By.id('user_login')).sendKeys('username');
await driver.findElement(By.id('user_pass')).sendKeys('password');

// ログイン実行
// (submitはログインボタンの要素名)
await driver.findElement(By.id('submit')).click();

})();
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!