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 : "要素が見つかりません");