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

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

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

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

selenium

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

Q&A

解決済

1回答

350閲覧

seleniumでクリックしたいテキストがあるが、できない

RyoOnishi

総合スコア23

Python 3.x

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

selenium

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

0グッド

0クリップ

投稿2022/09/20 04:27

前提

PythonでWebサイトに文字をペーストする作業を自動化したいです。
【自動化したい作業】
①あるサイトにログイン
②リンクをクリックして別のページへ飛ぶ。
③ファイルアップロードが選択されているので、「フォーム入力」をクリックすると、テキストが入力できる。
④テキストを入力して、送信

②まではできたのですが、③ができません。
css_selectorで要素を取得し「フォーム入力」と表示できたのですが、文字をクリックできません。

調べたところ、jqueryのremoveClassとaddClassというのが使われているようです。「フォーム入力」と「ファイルアップロード」をクリックするたび、二つの要素のclass名が入れ替わります

アドバイスをお願いします。イメージ説明

実現したいこと

該当のソースコード

Python

1element = browser.find_elements(By.CSS_SELECTOR, '.mds-menu-option') 2time.sleep(3) 3print(element[0].text) 4print(element[1].text) 5print(element[2].text) 6print(element[3].text) 7print(element[4].text) 8element[4].click #反応なし 9 10●表示結果 11新品のみ 12新品・中古 13中古のみ 14ファイルアップロード 15フォーム入力 16 17

html(アクセスするサイト)

1 <h5> 2 ASIN登録 3 </h5> 4 5 <div class="mds-menu" data-data="&amp;key=asin_shipping_type&amp;country_code=not_applicable&amp;varchar=" data-url="/operation/setting" data-is-sending-data="true"> 6 <div class="mds-menu-option mds-menu-option-active" data-option="1"> 7 新品のみ 8 </div> 9 <div class="mds-menu-option " data-option="2"> 10 新品・中古 11 </div> 12 <div class="mds-menu-option " data-option="3"> 13 中古のみ 14 </div> 15 </div> 16 17 <div class="mds-menu"> 18 <div class="mds-menu-option" data-selector="#file-upload"> 19 ファイルアップロード 20 </div> 21 <div class="mds-menu-option mds-menu-option-active" data-selector="#form"> 22 フォーム入力 23 </div> 24 </div> 25 <div id="form" class=""> 26 <div class="col s12"> 27 <div class="col s8"> 28 <div class="mds-input mds-display-block mds-editing-mode mds-input-error" style="width: 100%;" data-type="large-textarea" data-data="&amp;text=" data-url="/operation/text0box/asin" data-suggestion="ASINを改行で区切ってペーストしてください(最大5000件)" data-regexp="^([a-zA-Z0-9]{8,13}\n){0,4999}[a-zA-Z0-9]{8,13}$" data-width="500" data-item="upload"> 29<textarea class="mds-inline-input" style="width: 90%;" rows="22" onclick="event.stopPropagation();"></textarea> 30<img class="mds-inline-icon mds-submit-icon mds-disable" alt="submit" style="width: 18px; margin-left: 8px;" src="../assets/img/tick.svg"> 31</div> 32 </div> 33 <div class="col s4"> 34 <p class="mds-side-suggest" data-item="upload">ASINを改行で区切ってペーストしてください(最大5000件)</p> 35 </div> 36 </div> 37 </div> 38 <div id="file-upload" class="mds-hide"> 39 <div class="col s12"> 40 <div class="col s8"> 41 <div class="mds-file-upload" style="height: 300px; width: 100%;" data-url="/operation/upload/asin" ;=""> 42 43<form> 44 <input type="file" name="file" style="display: none;"> 45</form> 46</div> 47 </div> 48 <div class="col s4"> 49 <p class="mds-side-suggest"> 50 ボックス内にCSVファイルをドラック・アンド・ドロップしてください(最大10000件) 51 </p> 52 <a href="../assets/csvfile/asin_temp.csv" class="mds-link" download="asin_temp.csv">フォーマットダウンロード</a> 53 </div> 54 </div> 55 </div> 56 </div> </div> 57</div> 58

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

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

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

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

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

guest

回答1

0

ベストアンサー

element[4].click()
で行けるのではないでしょうか。
括弧がないため関数が実行されていないように見受けられます。

投稿2022/09/20 10:09

guigui55

総合スコア77

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問