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

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

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

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

selenium

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

Q&A

解決済

1回答

2173閲覧

【Selenium】ドロップダウンをクリックしたいがエラーが返ってくる

HF0603

総合スコア12

Python

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

selenium

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

0グッド

0クリップ

投稿2020/10/18 14:56

編集2020/10/18 14:57

前提・実現したいこと

Seleniumを用いて以下サイトの「変換なしダウンロード」のボタンをクリックしたいです。

<div class="btn-group"> <button type="button" class="btn btn-warning btn-sm hidden-xs dropdown-toggle" data-toggle="dropdown"> <span class="fa fa-download"></span>&nbsp;アップロード用CSVダウンロード <span class="caret"></span> </button> <ul class="dropdown-menu warning" data-role="menu"> <li><button class="btn btn-link" type="submit" name="csv_dl" value="csv_dl_ex">Excel表示用(識別子が0から始まる数字の場合に'が付きます)</button></li> <li><button class="btn btn-link" type="submit" name="csv_dl" value="csv_dl_non">変換なしでダウンロード</button></li> </ul> </div>

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

以下のサイトを参考にDOMをクリックしていく実行を試みましたが、クリックエラーが返ってきます。

Python

1browser.execute_script('document.querySelector(".btn-group.open > ul.dropdown-menu > li:nth-child(1) > button").click()')
# エラーメッセージ JavascriptException: Message: javascript error: Cannot read property 'click' of null (Session info: chrome=86.0.4240.75)

※参考記事
python seleniumでドロップダウンをクリックする方法

試したこと

記事③番にあたるcssセレクターで要素を叩いていく実行も行いましたが、また別のエラーが返ってきました。

Python

1browser.find_element_by_css_selector('.btn-group.open > ul.dropdown-menu > li:nth-child(1) > button').click()
# エラーメッセージ NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".btn-group.open > ul.dropdown-menu > li:nth-child(1) > button"} (Session info: chrome=86.0.4240.75)

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

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

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

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

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

guest

回答1

0

ベストアンサー

Python

1driver.execute_script('document.querySelector("div.btn-group > ul > li:nth-child(2) > button").click()') 2 3 4driver.find_element_by_css_selector('div.btn-group > ul > li:nth-child(2) > button').click()

投稿2020/10/19 18:11

Reach

総合スコア735

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

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

HF0603

2020/10/20 01:25

Begginer_ABC様 .execute_scriptロケータの方で実行したところ、無事解決いたしました。 ベストアンサーとさせていただきます。ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問