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

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

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

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

selenium

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

1873閲覧

python seleniumを使ってhtmlのボタンのクリックができない

mi_chan613

総合スコア13

Python

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

selenium

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

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/12/17 05:48

前提・実現したいこと

python初心者です。
python seleniumを使って、自動操作のプログラムを作っています。

htmlコード

html

1<div class="sideByBtn btmMgnSet2"> 2 3 <div class="sideByBtnBookmark"> 4 <a href="javascript:void(0);" data-id="13318767" class="btnType01 btnBdr btnEffects dim bookmark_button bookmark_item_detail"><i class="fa fa-heart rightMgnSet" aria-hidden="true"></i><span class="bookmark_text">ブックマークに登録する</span></a> 5 <div class="bookmarkTooltip">ブックマークを使うと割引、品切れ、再入荷があった際にマイページとメールでお知らせします。</div> 6 </div> 7 <a href="#detailPriceTable" class="btnType01 btnColor01 fSize12 btnEffects "><i class="fa fa-angle-double-down rightMgnSet" aria-hidden="true"></i>今すぐ仕入れる</a> 8</div>

の「今すぐ仕入れる」ボタンをクリックさせたいので、

python

1driver.find_element_by_class_name('btnType01 btnColor01 fSize12 btnEffects ').click()

と書きました。

VSCodeでエラーは、

python

1c:\Users\mi_chan\Documents\tampopo\PSauto.py:72: DeprecationWarning: find_element_by_* commands are deprecated. Please use find_element() instead 2 driver.find_element_by_class_name('btnType06 btnColor01 btnEffects ').click() #更新ボタンクリック 3Exception in Tkinter callback 4Traceback (most recent call last): 5 File "C:\Users\mi_chan\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__ 6 return self.func(*args) 7 File "c:\Users\mi_chan\Documents\tampopo\PSauto.py", line 72, in btnURL_click 8 driver.find_element_by_class_name('btnType06 btnColor01 btnEffects ').click() #更新ボタンクリック 9 File "C:\Users\mi_chan\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 760, in find_element_by_class_name 10 return self.find_element(by=By.CLASS_NAME, value=name) 11 File "C:\Users\mi_chan\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 1244, in find_element 12 return self.execute(Command.FIND_ELEMENT, { 13 File "C:\Users\mi_chan\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 424, in execute 14 self.error_handler.check_response(response) 15 File "C:\Users\mi_chan\AppData\Local\Programs\Python\Python310\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 247, in check_response 16 raise exception_class(message, screen, stacktrace) 17selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".btnType06 btnColor01 btnEffects "} 18 (Session info: chrome=96.0.4664.110) 19Stacktrace: 20Backtrace: 21 Ordinal0 [0x00A36903+2517251] 22 Ordinal0 [0x009CF8E1+2095329] 23 Ordinal0 [0x008D2848+1058888] 24 Ordinal0 [0x008FD448+1233992] 25 Ordinal0 [0x008FD63B+1234491] 26 Ordinal0 [0x00927812+1406994] 27 Ordinal0 [0x0091650A+1336586] 28 Ordinal0 [0x00925BBF+1399743] 29 Ordinal0 [0x0091639B+1336219] 30 Ordinal0 [0x008F27A7+1189799] 31 Ordinal0 [0x008F3609+1193481] 32 GetHandleVerifier [0x00BC5904+1577972] 33 GetHandleVerifier [0x00C70B97+2279047] 34 GetHandleVerifier [0x00AC6D09+534521] 35 GetHandleVerifier [0x00AC5DB9+530601] 36 Ordinal0 [0x009D4FF9+2117625] 37 Ordinal0 [0x009D98A8+2136232] 38 Ordinal0 [0x009D99E2+2136546] 39 Ordinal0 [0x009E3541+2176321] 40 BaseThreadInitThunk [0x7753FA29+25] 41 RtlGetAppContainerNamedObjectPath [0x77BB7A9E+286] 42 RtlGetAppContainerNamedObjectPath [0x77BB7A6E+238] 43 44[13820:4528:1217/135818.329:ERROR:gpu_init.cc(457)] Passthrough is not supported, GL is disabled, ANGLE is 45

と出ました。

あと、wait.untilやsleepを試しました。

初心者過ぎて、うまく質問をできず申し訳ありません。
よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

CSSセレクターの問題ですね。

python

1driver.find_element_by_class_name('.btnType01.btnColor01.fSize12.btnEffects').click()

クラスセレクター

CSS

1/* "spacious" および "elegant" の両方をクラスリストに含む <li> 要素すべて */ 2/* 例えば、 class="elegant retro spacious" */ 3li.spacious.elegant { 4 margin: 2em; 5}

投稿2021/12/17 08:39

skys215

総合スコア910

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

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

mi_chan613

2021/12/21 03:28

大変、コメントが遅くなりまして、申し訳ありませんでした。 driver.find_element_by_class_name('.btnType01.btnColor01.fSize12.btnEffects').click() をしたところ、うまくいかずCSSセレクタと書かれていたので、 「Python selenium CSS ボタンクリック」で検索をして、 driver.find_element_by_css_selector('.btnType01.btnColor01.fSize12.btnEffects').click() が出てきました。それで実行してもうまくいきませんでした。 そのあと、いろいろ調べましたが、うまくいかず。。。 もらった資料では、後でログインをするのですが、 先にログインをして、 driver.find_element_by_css_selector('.btnType01.btnColor01.fSize12.btnEffects').click() をしたらできました。 回答者にコメントで尋ねてみることもできたのですね。 初めてこのサイトを使ったので、結論が出るまでコメントできないと思ってました。 本当にコメントが遅くなってしまい、申し訳ありませんでした。 CSSセレクタと教えてくださって、ありがとうございました。 ずうずうしいですが、また質問したときは、よろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問