--- title: "テーブルやリスト内の要素を操作する方法について教えてください | Autify Guide" slug: "what-if-i-want-to-click-on-the" description: "テーブルやリスト内の特定の要素を操作する方法について説明します。" updated: 2023-08-23T00:39:33Z published: 2023-08-23T00:39:33Z canonical: "help.autify.com/what-if-i-want-to-click-on-the" --- > ## Documentation Index > Fetch the complete documentation index at: https://help.autify.com/llms.txt > Use this file to discover all available pages before exploring further. # テーブルやリストで意図した要素を操作するにはどうしたらいいですか? シナリオ作成時にテーブルの一番上の要素に対する操作をレコーディングし、その要素が「test0001」というテキストを持っているとします。しかしある時新しいレコードが追加され、二番目に「test0001」が移動し、一番目に「test0002」が新しく表示されている場合は、Autifyは二番目にある「test0001」の要素を対象にしてしまうなど、意図した要素を操作できない可能性があります。 ![moved_record](https://cdn.document360.io/a099d8a2-cfd2-42ca-9906-68b4a337f4a5/Images/Documentation/moved_record.png?sv=2026-02-06&spr=https&st=2026-11-15T01%3A04%3A09Z&se=2026-11-15T02%3A04%3A09Z&sr=c&sp=r&sig=ecCIBMGjb1IOYgrvIQn8wojy38jvZg1BkiREI4YcYEk%3D) この場合、常に一番上にある最新のレコードをクリックする前提のシナリオでは、後続のステップでテストが失敗することが考えられます。 現状テーブルやリストで、一番上やN番目、一番下など意図した要素を確実に対象としたい場合は、[ロケータ機能](/docs/ja/add-a-locator-to-specify-an-el)を使う必要があります。 以下ロケータに設定するCSSセレクター/XPathの例を、いくつか紹介します。なお**本記事で紹介しているCSSセレクター/XPathはあくまで例**ですので、実際のサイト構造を確認し、適切なCSSセレクター/XPathを作成してください。 ## CSSセレクターでN番目の要素を対象にする CSSセレクターにおいてN番目の要素を対象にしたい場合は、以下の構文が使えます。 - N番目 ``` :nth-child(N) ``` - 最初 ``` :first-child ``` - 最後 ``` :last-child ``` もしもリストの2番目を対象にしたい場合は以下のようになります。 ``` ul > li:nth-child(2) ``` ## テーブルのN行目・M列目にある要素を対象にする テーブルの場合は行と列を指定する必要があります。`tr`タグが行、`td`タグが列を表すので、それぞれに何番目の要素を取得したいかを指定する必要があります。以下は1行目の1列目にある要素を取得するCSSセレクターです。最新のデータが一番上に来るテーブルの場合、このCSSセレクターは常に最新のデータが対象になります。 ``` table > tbody > tr:first-child > td:first-child ``` 以下のテーブルの場合赤枠で囲まれた要素が対象になります。 ![td_a](https://cdn.document360.io/a099d8a2-cfd2-42ca-9906-68b4a337f4a5/Images/Documentation/td_a.png?sv=2026-02-06&spr=https&st=2026-11-15T01%3A04%3A09Z&se=2026-11-15T02%3A04%3A09Z&sr=c&sp=r&sig=ecCIBMGjb1IOYgrvIQn8wojy38jvZg1BkiREI4YcYEk%3D) 上述赤枠の対象要素はtd要素ですが、この要素の下に`a`タグで作られたリンクが存在します。このリンクをクリックしたい場合はCSSセレクターの末尾に `a` を追加します。 ``` table > tbody > tr:first-child > td:first-child a ``` もちろん最終列も対象にできます。その場合は以下のように`td:first-child`を`td:last-child`に変更します。 ``` table > tbody > tr:first-child > td:last-child ``` ## テーブルで特定のテキストを持つ行の特定の列を対象にする N行目・M列目のような指定ではなく、あるテキストを持つ要素が存在する行の、特定の列を対象にしたいケースもあるかと思います。例えばAutifyのシナリオ一覧テーブルから、シナリオ名が「test0001」の行の最後の要素を対象にしたい場合は以下のXPathを使用します。 ``` //table/tbody/tr[td//*[text()='test0001']]/td[6] ``` 緑枠で囲まれたtd要素が対象になります。 ![td_with_specific_text](https://cdn.document360.io/a099d8a2-cfd2-42ca-9906-68b4a337f4a5/Images/Documentation/td_with_specific_text.png?sv=2026-02-06&spr=https&st=2026-11-15T01%3A04%3A09Z&se=2026-11-15T02%3A04%3A09Z&sr=c&sp=r&sig=ecCIBMGjb1IOYgrvIQn8wojy38jvZg1BkiREI4YcYEk%3D) 対象となった要素はtd要素ですが、この要素の下にはbuttonタグで囲まれたメニューアイコンが存在します。このbuttonタグを対象にしたい場合は、以下のようにXPathを変更します。 ``` //table/tbody/tr[td//*[text()='test0001']]/td[6]//button ``` もしも検索したいテキストが毎回同じではなく、テスト実行ごとに[JSステップ](/docs/ja/javascript-steps)や[動的な値](/docs/ja/dynamic-value-generation)を使ってランダムに作成している場合は、JSステップを使用する必要があります。引数として別のステップで作成した検索したい文字列を受け取り、以下のJSスニペットの中で使用してください。 - [テーブル内をテキストで検索し見つかった行の特定の列を操作する](https://javascript-snippets.autify.com/ja/snippets/others/search_in_table_and_operate_specific_column/)