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

回答1件
あなたの回答
tips
プレビュー