@webnoob (勇太 佐々木)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

NodeでHTML内に記述されているscriptの実行方法について

Q&A

Closed

解決したいこと

HTMLの勉強をしている者です。
Nodeでhtmlで書かれたwebページの自動操作を試みています。
scriptタグで囲まれた箇所に対して、ボタンをクリックする以外にonclick時の処理を行わせる方法がわからず困っています。
解決方法を教えていただけないでしょうか。

該当するソースコード

<div class="Button">
  <script>
     document.write('<input type="submit" name="xxx" value="ボタンです" class="yyy" onclick="~~~">');
   </script>
</div>

自分で試したこと

ダメ元でform.submit()を試してみたのですが、formタグでくくられていないため動きませんでした。

0 likes

2Answer

script タグ内の JS が実行されると script 要素の直後に input 要素が挿入されて以下の構造の DOM になります。

<div class="Button">
  <script>
    document.write('<input type="submit" name="xxx" value="ボタンです" class="yyy" onclick="~~~">');
  </script>
  <input type="submit" name="xxx" value="ボタンです" class="yyy" onclick="~~~">
</div>

この要素を document.querySelector('input[name="xxx"]').click() か何かでクリックすればいいでしょう。

1Like

Comments

  1. @webnoob

    Questioner

    ありがとうございます。
    puppeteerでの動かし方について更に勉強をしようと思います。

Nodeでhtmlで書かれたwebページの自動操作

の文面から判断するに
Node.js 用の chrome を操作するためのライブラリ puppeteer とか
古いやり方だと Selenium とか
最近だと microsoft が playwright を公開しましたか。

何れにせよブラウザの js の実行を待ってから dom を触る必要がありそうですね。

0Like

Comments

  1. @webnoob

    Questioner

    ありがとうございます。
    puppeteerでの動かし方について更に勉強をしようと思います。

Your answer might help someone💌