質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

Q&A

1回答

2560閲覧

【Ruby】seleniumでログイン情報を記録できません。

hideomaru

総合スコア2

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Chrome

Google Chromeは携帯、テレビ、デスクトップなどの様々なプラットフォームで利用できるウェブブラウザです。Googleが開発したもので、Blink (レンダリングエンジン) とアプリケーションフレームワークを使用しています。

selenium

Selenium(セレニウム)は、ブラウザをプログラムで作動させるフレームワークです。この原理を使うことにより、ブラウザのユーザーテストなどを自動化にすることができます。

0グッド

0クリップ

投稿2021/05/24 13:43

前提・実現したいこと

selenium webdriverでログイン情報を引き継いで、サイトにアクセスできるようにしたい。
ログイン情報を記録したchrome profileを作成したいです。

発生している問題・エラーメッセージ

chrome profileが指定したディレクトリに保存されていません。
ですが、特にエラーメッセージが出るわけでもございません。

該当のソースコード

使用言語はRubyです。

require "selenium-webdriver" caps = Selenium::WebDriver::Remote::Capabilities.chrome( chromeOptions: { args: ["--user-data-dir=C:\Users\ユーザー名(日本語)\Desktop\Profile"] }) driver = Selenium::WebDriver.for :chrome, desired_capabilities: caps driver.get("https://qsm.qoo10.jp/gmkt.inc.gsm.web/Login.aspx") require 'debug'

補足情報(FW/ツールのバージョンなど)

こちらのWebサイトを参考にしております。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Ruby

1options = Selenium::WebDriver::Chrome::Options.new 2options.add_argument("--user-data-dir=D:\Profile") 3 4 5driver = Selenium::WebDriver.for :chrome, options: options

で出来ました。

なお、"の中では\\と書きます。

投稿2021/05/24 14:08

otn

総合スコア85901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

hideomaru

2021/05/24 14:47

otn様 ご返信いただきありがとうございます。上記ソースにてProfileは作成できました。 しかし、1回目でログインを実行したのち、2回目にサイトにアクセスしても再度ログインを要求されます。 原因について、なにかご知見を教えていただけないでしょうか。
otn

2021/05/24 15:01

require "selenium-webdriver" require "pry" options = Selenium::WebDriver::Chrome::Options.new options.add_argument("--user-data-dir=Z:\Profile") driver = Selenium::WebDriver.for :chrome, options: options driver.get("https://teratail.com") binding.pry true で、出来てます。
hideomaru

2021/05/25 14:59

ご返信ありがとうございます。teratailやyahooなどのログイン情報の記録はうまくできましたが、こちらのURL(https://qsm.qoo10.jp/gmkt.inc.gsm.web/Login.aspx)の場合、ログイン情報が記録されないようです。 関係があるか分かりませんが1回目でログイン実行し、デバッグ画面で"quit"を入力すると下記エラーが発生しています。 C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:960:in `initialize': No connection could be made because the target machine actively refused it. - connect(2) for "127.0.0.1" port 9515 (Errno::ECONNREFUSED) 17: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/platform.rb:150:in `block in exit_hook' 16: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/service.rb:118:in `stop' 15: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/service.rb:185:in `stop_server' 14: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/service.rb:156:in `connect_to_server' 13: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:606:in `start' 12: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:933:in `start' 11: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/service.rb:160:in `block in connect_to_server' 10: from C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/selenium-webdriver-3.142.7/lib/selenium/webdriver/common/service.rb:185:in `block in stop_server' 9: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:1241:in `get' 8: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:1492:in `request' 7: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:1518:in `transport_request' 6: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:1567:in `begin_transport' 5: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:958:in `connect' 4: from C:/Ruby27-x64/lib/ruby/2.7.0/timeout.rb:105:in `timeout' 3: from C:/Ruby27-x64/lib/ruby/2.7.0/timeout.rb:95:in `block in timeout' 2: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:960:in `block in connect' 1: from C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:960:in `open' C:/Ruby27-x64/lib/ruby/2.7.0/net/http.rb:960:in `initialize': Failed to open TCP connection to 127.0.0.1:9515 (No connection could be made because the target machine actively refused it. - connect(2) for "127.0.0.1" port 9515) (Errno::ECONNREFUSED) なにかご知見を教えていただけないでしょうか。
otn

2021/05/25 15:05

> Failed to open TCP connection to 127.0.0.1:9515 Chromeとコネクションが張れないと言うことなので、Chromeが落ちているか、ネットワーク的原因か。 先にChromeを終了してからRubyをquitすると同様のエラーが出ます。
otn

2021/05/25 15:14

さあ。 どうやってログイン状態を保持しているのか分からないと何とも。 そもそも、そのサイトって、ブラウザを終了させてもログイン状態が保持されるのですか?
hideomaru

2021/05/25 15:31

通常のChromeであれば終了させてもログイン状態が保持されております。 ですので、プロファイルに保存されているはずなのですが...
otn

2021/05/26 13:23

とりあえずCookieを比較するところから始めるのでしょうか。 その後は、開発者ツールで通信内容の比較かな。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問