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

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

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

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

selenium

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

HTML

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

Q&A

解決済

1回答

1612閲覧

Pythonのseleniumを使ったclickの方法について

naokiscottie

総合スコア11

onclick

onclickとはユーザーのクリック処理を指します。これは"onmousedown"(押下)と"onmouseup"(押上)の二つの事象の組み合わせです

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Python

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

selenium

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

HTML

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

0グッド

0クリップ

投稿2021/04/23 23:10

Pythonのseleniumを使ったウェブサイトのクリック方法についてお尋ねします。

私がクリックしようとしている場所なのですが、表として作成されている行を選択すればjavascriptのコード(onclick)で別のウェブページに移動するというコードとなっています。
画像とHTMLの一部抜粋をつけておくのでイメージして下さればと思います。

私が作ったコードとしては、以下のようなコードといたしました。まずは表をclassによって取得し、その後行と列を指定して場所を確定させて、その位置の座標をクリックするという方法です。
指定の位置を取得できているか、.textをprintさせることによって確認してみましたが、指定の位置は取得できていました。この度は画像に出ている"トラックセンター発電所"がprintされており、場所に関しては指定できていることが確認できました。
ただ、実際にクリックしてみると上手くいきませんでした。

"トラックセンター"という文字の上をクリックしていることに問題があるのでしょうか?
手動でクリックする場合はこの行の何処をクリックしても指定のURLに移動するようになっています。

何か良い方法があれば教えて下さい。

イメージ説明

html

1 2<table class="areaSheet"> 3 <tbody> 4<tr> 5 <th class="title">設置場所</th> 6 <th>現在の発電電力(kW)</th> 7 <th>サイト状況</th> 8</tr> 9 10<tr id="area[]" class="white" onclick="window.location.href='https://services.energymntr.com/megasolar/IQE0203897/monitor/index.php?gid=1';"> 11 <td class="title">釜足発電所</td> 12 13 14 <td>5.1</td> 15 16 <td class="state normal">正常</td> 17</tr> 18 19

python

1 2 3tableElem=driver.find_element_by_class_name("areaSheet") 4trs=tableElem.find_elements(By.TAG_NAME,"tr") 5 6tds=trs[3].find_elements(By.TAG_NAME,"td") 7print(tds[0].text) 8time.sleep(5) 9 10 11 12loc = tds[0].location 13x, y = loc['x'], loc['y'] 14actions = ActionChains(driver) 15actions.move_by_offset(x, y) 16actions.click() 17actions.perform() 18

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

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

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

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

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

y_waiwai

2021/04/23 23:24

うまくいかないとはどううまくいかないんでしょうか。 どこをクリックしたことになってるとか、そこらへんの情報はないでしょうか
naokiscottie

2021/04/24 00:42

クリックは指定したセルのテキストの上をクリックしていることになっていると思います。 この画面は自動ログインして入った後の画面なのですが、何故かクリック後またログイン画面になってしまいます。 文字の上をクリックしてるのが、よくないのかと思いxに200をたしてクリックを同じ行でずらしてみたりしています。上手くいってないですが。 もし良ければ別のアプローチの方法とかお聞き出来ればと思いました。
y_waiwai

2021/04/24 00:44

どういう不具合があるのか質問文ではまったくわかりません。 そこらへんくわしくせつめいしましょう
guest

回答1

0

ベストアンサー

trタグにonclickが設定されているようなので、そのクリックがしたいのであれば、find_elements等で目的のtrタグを得て、それをclickすれば良いのでは無いでしょうか。

投稿2021/04/24 03:50

otn

総合スコア84499

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

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

naokiscottie

2021/04/24 06:15

それって、今私が書いているコードで問題ないという事でしょうか?
otn

2021/04/24 07:00

いいえ。 今書いているコードではなくて、回答に書いたようにしてはどうかというう事です。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問