1
1

seleniumでHTML要素を指定する方法

Last updated at Posted at 2023-11-30

ID指定

driver.find_element_by_id("exampleId")

Class指定

driver.find_element_by_class_name("exampleClass")

タグの指定

タグ名で要素を指定(例:<div>, <a>など)。

driver.find_element_by_tag_name("div")

name属性で指定

name属性を持つ要素を指定する方法。

driver.find_element_by_name("exampleName")

CSSのセレクターで指定

CSSで使うセレクタを使用して、要素を特定。

driver.find_element_by_css_selector("input[type='text']")

aタグのアンカーテキストで指定

たとえば、<a href="">詳しくはこちら</a>のようなリンクがあった場合、以下のように指定できる。

driver.find_element_by_link_text("詳しくはこちら")

aタグのアンカーテキストの一部がわかってる時に指定

アンカーテキストの全部を指定しないで、一部の単語だけ指定する方法。
たとえば、<a href="">詳細をクリック</a>のようなリンクがあった場合、以下のように指定できる。

driver.find_element_by_partial_link_text("クリック")

xpathで指定

ブラウザの開発者モードで要素を右クリック > コピー > xpathをコピー…から取得できるxpathで指定する方法もあります。

element_by_id = driver.find_element_by_xpath("//*[@id='exampleId']")

他にも、<button>送信</button>というようなボタンタグがあった場合、以下のように指定することができます。

button = driver.find_element_by_xpath("//button[text()='送信']")

xpathが正しいかjsでテストする方法

ブラウザの開発者モードのコンソールを開いて、以下のようなコードを貼り付けて確認できます。
指定したxpathに一致する要素が存在すれば、その要素のHTMLがコンソールに出力され,一致する要素がない場合は、「要素が見つかりません」と表示されます。

var xpath = "ここにテストしたいXPathを入力";
var element = document.evaluate(xpath, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
console.log(element ? element.outerHTML : "要素が見つかりません");

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1