見出し画像

innerTextで検索するJavaScript

JavaScriptで要素を探してクリックするのは、

document.querySelectorAll('span > a')[0].click()

こういう感じでできてしまうので、特に困らないのですが、記載されている文字列で検索してクリックとかしてみたいですよね。
でもinnerTextを探すとかってどうやるの?というときの技です。

結論:こうします。

const searchWords= '検索したいテキスト';
const elements = document.querySelectorAll('*');
const filterElements = Array.from(elements)
.filter((element)=> element.textContent === searchWords);
filterElements[1].click()

上記コードはそのまま活用できず、2点変更が必要です。

  1. 最初のsearchWordsは探したい文字列。 部分検索はできないようすなのでフルで検索すること

  2. 最後の[1]は、このお試しの際に、4つの候補があったので、[1]を指定しています。該当する文字列が1つしかなければ[0]でよい。

どのくらい該当するかわからないときは(まあ普通わからないですね)、最後の1行をクリックではなくログ出力にすればよいでしょう。

const searchWords = '検索したいテキスト';
const elements = document.querySelectorAll('*');
const filterElements = Array.from(elements)
.filter((element)=> element.textContent === searchWords);
console.log(filterElements)

RPAのお供にどうぞ。

ちょっと役立ったなと思ったら、サポートいただけると嬉しいです。マウスを買い替える資金になります!