🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python 3.x

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

selenium

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

Q&A

解決済

2回答

2879閲覧

pythonのseleniumの操作方法について

rgb_nk

総合スコア26

Python 3.x

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

selenium

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

0グッド

1クリップ

投稿2019/11/20 15:59

html

1<div style="display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin:0px 0px 0px 20px;"> 2 <a href="#" style="" class="flatGreenButton change_all_button" onclick="return applicantManagement.changeAllTopNavi(this, 1);" tabindex="0"><span>のび太君の基礎体力</span></a> 3 <a href="#" style="" class="flatGreenButton change_all_button" onclick="return applicantManagement.changeAllTopNavi(this, 4);" tabindex="0"><span>すねおとじゃいやん</span></a> 4 <a href="#" style="" class="flatGreenButton change_all_button" onclick="return applicantManagement.changeAllTopNavi(this, 3);" tabindex="0"><span>ドラえもんをCSV出力</span></a> 5 <a href="#" style="" class="flatGreenButton change_all_button" onclick="return applicantManagement.changeAllTopNavi(this, 8);" tabindex="0"><span>どこでもドア</span></a> 6 <a href="#" style="" class="flatGreenButton change_all_button" onclick="return applicantManagement.changeAllTopNavi(this, 7);" tabindex="0"><span>しんのすけ</span></a> 7</div> 8

上記のHTMLから、「ドラえもんをCSV出力」というものを選び、最終的にクリックしたいです。

試したこと1

python

1csv_data = self.driver.find_element_by_class_name("flatGreenButton.change_all_button") 2 self.driver.execute_script("arguments[0].scrollIntoView(true);", csv_data) 3 # sleep(3) 4 csv_data.click()

このコードでは、クラス名が同じなので、どうしても一番最初の「のび太君の基礎体力」がクリックされてしまいます。
先ほども言ったように「ドラえもんをCSV出力」をクリックしたいです。

試したこと2

python

1element = self.driver.find_elements_by_xpath("//div[contains(text(), 'return applicantManagement.changeAllTopNavi(this, 3);')]").click()

xpathで指定してみたところ、AttributeError: 'list' object has no attribute 'click'
というエラーが発生します。

「ドラえもんをCSV出力」をクリックする方法を教えていただきたいです。

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

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

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

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

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

guest

回答2

0

self.driver.find_element_by_link_text('ドラえもんをCSV出力').click()

投稿2019/11/21 02:03

shirai

総合スコア1290

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

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

0

ベストアンサー

flatGreenButton.change_all_button
で要素を検索すると、複数の要素が見つかるのではないでしょうか。
ただ、findだと最初の要素が検索されているのではないかと。

find_element_by_class_nameを利用するのではなく、
find_elements_by_class_nameを利用し、3番目と決まっているのであれば、取得した要素リストの[2]で参照すると良いのではないでしょうか。

投稿2019/11/21 00:48

t_obara

総合スコア5488

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

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

rgb_nk

2019/11/21 01:39

コードにすると csv_data = self.driver.find_element_by_class_name("flatGreenButton.change_all_button") csv_data[2].click() ということでしょうか?
rgb_nk

2019/11/21 01:47

csv_data = self.driver.find_element_by_class_name("flatGreenButton.change_all_button") csv_data[2].click() 上記のコードを試してみたのですが、 TypeError: 'WebElement' object does not support indexing とでるので、インデックスという概念がないかもしれないです。
otn

2019/11/21 02:02

_element_ じゃなくて _elements_ ですよ。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問