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

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

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

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

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

Q&A

0回答

3210閲覧

python(selenium)で、以下のエラー内容が発生していますが、どのような意味なのでしょうか?

kimukimu009

総合スコア33

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

selenium

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

0グッド

0クリップ

投稿2020/01/16 05:31

■実行結果としては、問題有りませんが、python(selenium)で、以下のエラー内容が発生しています。
どういう意味のエラーなのでしょうか?

【エラー内容】

DevTools listening on ws://127.0.0.1:55119/devtools/browser/d80dcceb-a403-409a-a015-71d50dd34f89 [19404:20308:0116/140502.102:ERROR:native_message_process_host.cc(344)] Error when writing to Native Messaging host: -101

■実行結果
実行結果としては、問題有りません。
・あるサイト(画面A)にアクセス(ユーザプロファイルを保持したまま、ログインする)
・画面Aの中の、リンク文字をクリックし、画面Bに飛ぶ

■pythonファイル

# seleniumを使う準備 from selenium import webdriver from selenium.webdriver.chrome.options import Options options = Options() PROFILE_PATH = r'C:\Users\motoc\AppData\Local\Google\Chrome\User Data' options.add_argument('--user-data-dir=' + PROFILE_PATH) driver = webdriver.Chrome(options=options) driver.get("https://sellercentral-japan.amazon.com/gp/homepage.html/ref=xx_home_logo_xx") # 未出荷ボタンクリック driver.find_element_by_xpath('//*[@id="widget-fxmXCT"]/div/div[2]/div[1]/span[4]/span/a').click()

■なぜ、この質問をしているのか?
上記のpythonファイルの最後の部分に、

# 出荷済ボタンクリック driver.find_element_by_xpath('//*[@id="myo-spa-tabs-container"]/div[2]/div[4]/a').click()

を追記しましたが、「画面B」の中のリンク文字が押せないからです。
(画面Bの中の、リンク文字をクリックし、画面Cに飛ぶことができない。)

原因を探った所、

・「出荷済ボタンクリック」プログラムを「追記しても」「しなくても」、
同じ上記のエラーが表示されていました。

従って、このエラーをなくせば、できるのではないかと考えたからです。

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

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

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

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

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

shirai

2020/01/16 14:20

ユーザプロファイルを保持したまま とはどういうことでしょうか。プログラムにはログインらしきコードは見当たりませんが、ログイン情報をよそから読み込んでいるということでしょうか。
kimukimu009

2020/01/16 14:34

ありがとうございます。 このサービスの場合、クロームで、 一旦、IDとパスワードでログインをした場合、次回からは省略してログインをすることができます。 したがって、ユーザプロファイルを指定してSeleniumからChromeを起動できれば、 IDパスワードを入力させなくても、ログイン後の画面が出てくると言うわけです。 そこまでは、エラーも出ずに、うまく自動化できたのですが、その後に問題が発生(該当のエラーメッセージが発生)しています。
kimukimu009

2020/01/16 14:36

最初は、ログイン後の画面のURLを指定しています。
shirai

2020/01/16 16:50

なるほど! エラーメッセージにNative Messagingと出ているので十中八九そのプロファイル周りでエラーが起こってますね。 このプロファイルを使わずにログインID/PWを入力するというのはダメなのですか?
kimukimu009

2020/01/16 23:06

なるほど! トライしてみます。 ありがとうございます。
kimukimu009

2020/01/17 02:59

結果です。 このサービスの場合、2段階認証になっています。 つまり、ログインID/PWを入力した後、認証コードが別途送られてきて、それを入力し、ログインする というものです。 従って、このプロファイルを使わずにログインID/PWはできたとしても、2段階目ののパスワードを 自動で入力することができないと考えられます。 いかがでしょうか? ↓ 次に、考えたことは以下の通りです。 ■2段階認証は、手動で今まで通り行う。 ■ログインを手動で行った後、そのブラウザに対して、python(selenium)でボタン押す作業などを  自動化する。 ↑ ■次の疑問は、「起動されている、ブラウザに対して、python(selenium)でボタン押す作業などを  自動化ができるか?」になるかと考えられます。 ↓ 一旦、本質問は、これで終了した方がよさそうですかね? よろしくお願いいたします。
shirai

2020/01/17 03:09

認証コードが送られてくるというのはどのような形で送られてくるのでしょうか。 その値をpythonで取得出来れば間違いなく解決できます。 そのあとでこの質問を閉じるといいのではないでしょうか。
kimukimu009

2020/01/17 03:13

ありがとうございます。 これができたら、すばらしいですね。 現在は、認証コードを受け取る方法として、 1.携帯電話(iphone)の電話番号に対して、テキスト メッセージを受け取る 2.携帯電話(iphone)の電話番号で音声通話を受け取る 3.認証アプリでワンタイムパスワードを入力 の3つの方法があり、現在は、 1の方法で行っております。
shirai

2020/01/23 12:36

すみません遅くなりました。 その値ををpython側に送ることはできるでしょうか。
kimukimu009

2020/01/23 13:48

ありがとうございます。 確認させていただきます。 明日のご回答になります。 よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問