質問するログイン新規登録

Q&A

0回答

239閲覧

Python seleniumを用いてChromeを開こうとした際に出力されるAttributeError: 'str' object has no attribute 'get'を解決したい

haniwa2828

総合スコア0

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

selenium

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

0グッド

0クリップ

投稿2025/11/10 08:08

0

0

実現したいこと

出力エラーの原因と解決を実現したいです。

各バージョンは下記のとおりです。
OS: Windows 11 64ビット
パイソン: 3.14.0
Selenium: 4.38.0
IDE: vscode
Chrome: 143.0.7499.17
Chromeドライバー: 143.0.7499.17
*seleniumをpipした際、"C:/Users/ユーザ名/.cache/selenium/“下に自動で出力されたもの

発生している問題・分からないこと

seleniumを用いてchromeを自動実行しようと初歩的なコードを実行したところ、下記エラーが出力されました。

エラーメッセージ

error

1File "c:\workplace\python\main2.py", line 11, in <module> 2 3driver webdriver.Chrome(options-options) 4 5File "C:\Users\AppData\Local\Programs\Python \Python314\Lib\site-packages\selenium\webdriver 6 7¥chrome webdriver.py", line 47, in_init_ 8 9super() init ( 10 11browser_name=Desired Capabilities.CHROME['browserName"], 12 13<3 lines>... 14 15keep alive keep_alive, 16 17File "C:\Users\AppData\Local\Programs\Python Python314\Lib\site-packages\selenium webdtiver 18 19¥chromium webdriver.py", line 71, in_init_ 20 21super() init (command executor executor, options options) 22 23File "C:\Users\AppData\Local\Programs\Python Python314\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 263, in init 24 25self.start session(capabilities) 26 27File "C:\Users\AppData\Local\Programs\Python\Python314\Lib\site-packages\selenium\webdriver 28 29Vremote webdriver.py", line 367, in start session 30 31self.session id response.get("sessionId") 32 33AttributeError: 'str' object has no attribute 'get'

該当のソースコード

Python

1from selenium import webdriver 2import time 3 4options = webdriver.ChromeOptions() 5options.set_capability("browserVersion", "beta") #Specify beta version 6 7driver = webdriver.Chrome (options=options) 8driver.get("https://www.google.com") 9time.sleep(10) 10driver.quit()

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

生成AIでコードを修正しようと試みましたがchromeやchromeドライバのバージョンを確認する以上の出力が得られませんでした。
他にもseleniumのバージョンに対応した記事を拝見しましたが、本エラーに関する有力な解答や知見を得ることはできませんでした。。

恐らく初歩的なミスかと思いますが、解決策わかる方いましたらご教示ください。

補足

エラーメッセージは一部インデントや誤字があるかと思います(諸事情によりスマホから手動で記入しています)。申し訳ありません。

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

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

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

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

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

meg_

2025/11/10 08:39 編集

エラーが発生したのは「該当のソースコード」の何行目ですか?(7行目ですか?)
meg_

2025/11/10 08:41

オプションの指定をされていますが必須の設定ですか?
haniwa2828

2025/11/10 08:48

ご質問ありがとうございます。 #1 7行目で合っております。 #2 オプションは必須ではありません。ただオプションを設定していない状態でも上記エラーが出力されました。(オプションはChromeのバージョンに合わせたchromeドライバを用いる意図で設定しています。)
TakaiY

2025/11/10 09:21

pythonが3.14でかなり新しいもののようですが、そうする理由はありますか? 最新のバージョンの初期段階では、モジュールが追随できずに問題が出る可能性があります。(この問題に関係するかどうかはわかりません。) こだわらないのであれば、少し古めのものを使うのをお勧めします。
haniwa2828

2025/11/10 11:16

TakaiYさん ご指摘ありがとうございます。バージョンは理由なく最新のものにしています。 ご指摘の通り、少し古いバージョンで試してみようと思います。
meg_

2025/11/10 11:31

> (オプションはChromeのバージョンに合わせたchromeドライバを用いる意図で設定しています。) 下記の場合はβバージョンのChromeでのテストを意図したコードのように見えます。 > options.set_capability("browserVersion", "beta") #Specify beta version SeleniumのバージョンによってはChromeやChromedriverを自動でインストールするようなので複数のChromeやdriverが競合していないか?一度チェックしても良いかもしれません。
melian

2025/11/10 11:35

手元の環境は Ubuntu Linux 25.10/Python 3.14.0/Selenium 4.38.0/Chrome: 143.0.7499.17/Chrom driver 143.0.7499.17 で、OS以外は同じバージョンですが、当該のエラーは発生しません。表示されているエラーメッセージは以下で、 File "C:\Users\...\Python\Python314\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 367, in start session  self.session_id = response.get("sessionId") AttributeError: 'str' object has no attribute 'get' これは以下の箇所になります。 selenium/py/selenium/webdriver/remote/webdriver.py at selenium-4.38.0 · SeleniumHQ/selenium https://github.com/SeleniumHQ/selenium/blob/selenium-4.38.0/py/selenium/webdriver/remote/webdriver.py#L367 本来であれば変数 response は dict 型のはずなのですが(手元の環境で確認しました)、なぜか str 型になっています。
meg_

2025/11/10 11:39

下記組み合わせでエラーなくブラウザが起動しました。ご参考まで。 Python 3.14.0 selenium 4.38.0 Crome 141.0.7390.108 Windows 11 Home
haniwa2828

2025/11/11 01:24

みなさんありがとうございます。以下試したことです。全て改善には至りませんでした。 #1 Python 3.13.9をインストール(前バージョンはアンインストール) #2 Chromeやdriverをアンインストールし、その後seleniumで実行 その後調べたところ、エラーが出るのはSeleniumがchromedriverから期待するjsonレスポンスを受け取れず、文字列エラーを辞書として扱おうとしていると推測しています。 そのため根本原因はchromedriverの起動失敗と考えています。 現に私は本OS上で、過去にpythonではなくjavaでchromedriverを使用しました。そちらの競合が発生しているのでしょうか?該当のドライバは削除しましたが、、まだどこかに存在し競合する可能性はあるのでしょうか?
meg_

2025/11/11 09:19

最小のコードでもエラー発生しますか? from selenium import webdriver driver = webdriver.Chrome ()
meg_

2025/11/11 09:22

> 該当のドライバは削除しましたが、、 seleniumがダウンロードしたものは削除できていないのでは? 一度Pythonの仮想環境から作り直してみてはいかがでしょうか?
haniwa2828

2025/11/11 09:36

megさん、ありがとうございます。 おっしゃる通り、Seleniumがダウンロードしたもの(.catchフォルダ)を削除、Pythonの環境も新しく作り直し、最小のコードでもエラーが発生します。 正直これ以上何をすればいいのか、、という状況です。
melian

2025/11/11 11:34

前回のコメントで変数responseがdict型ではなくstr型になっている事をお伝えしましたが、以下のコードを実行すればresponseの内容(文字列)がコンソールに表示されます。エラーの原因の手掛かりが得られるかもしれません。 https://www.mycompiler.io/view/IB0BukRXqWA
haniwa2828

2025/11/11 11:38

melianさん ご丁寧にありがとうございます!こちら明日になりますが試してみようと思います。
meg_

2025/11/11 15:56

ところでselenium + Chrome は今までは普通に使えていたのでしょうか?それとも今回初めて使用してエラー発生したのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.29%

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

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

質問する

関連した質問