Selenium-Python学習——XPThによる元素の位置付け
4849 ワード
Xpathで元素の位置を特定する方法はいつも覚えられないで、いつも各種のドキュメントのリンクの参考を取り出して、思い切って必要な内容をこのノートの中で整理して探すことができます.
XpathはXMLドキュメントでノードを特定する言語です.XPSを使用する主な原因の一つは、検索したい要素が適切なidまたはname属性に欠けていることである.XPTathポジショナは、絶対的または相対的にIDまたはname属性が欠けている要素を使用してもよく、他の属性で位置を特定しても良い.
XPTath位置付けの要素はhtml調整の影響を受けやすいので、先にidまたはname属性を通して近距離の要素を見つけられます.例えば、親要素を使って、シナリオの安定性を強化します.
例えば、ソースファイルは以下の通りです.
form要素はこのように位置決めできます.
1.絶対位置決め(HTML文の変化に最も影響されやすい)
2.HTMLの最初のform要素
3.属性がidで、値が「logiinForm」のform要素が含まれています.
username要素はこのように位置づけられます.
1.form要素のinputサブ要素には、属性がnameであり、値が「username」の要素が含まれています.
2.属性がidで、値が「logiinForm」のform要素を含む最初のinputサブ要素
3.属性がname、値が"username"の最初のinput要素を含む
Clearボタンはこのように位置決めできます.
1.属性はnameで、値は「continue」と属性はtypeで、値は「button」のinput元素です.
2.属性がidで、値が「logiinForm」のform要素を含む4番目のinputサブ要素
Xpath学習リンクを添付します.参照:http://www.w3school.com.cn/xpath/index.asp
要素の発見に役立つXpathの付加的なコンポーネントは、以下の通りである.
Xpath Checker (インタラクティブなXPTh表式エディタ)
Firebug (ウェブページのCSS、HTML、JavaScriptに対してリアルタイム編集、調整、監視を行う)
XPSヘルパー (ホームページのXpathの抽出、編集、評価に便利)
英文の文書の出所、参照:https://selenium-python.readthedocs.org/en/latest/locating-elements.html
XpathはXMLドキュメントでノードを特定する言語です.XPSを使用する主な原因の一つは、検索したい要素が適切なidまたはname属性に欠けていることである.XPTathポジショナは、絶対的または相対的にIDまたはname属性が欠けている要素を使用してもよく、他の属性で位置を特定しても良い.
XPTath位置付けの要素はhtml調整の影響を受けやすいので、先にidまたはname属性を通して近距離の要素を見つけられます.例えば、親要素を使って、シナリオの安定性を強化します.
例えば、ソースファイルは以下の通りです.
<html>
<body>
<form id="loginForm">
<input name="username" type="text" />
<input name="password" type="password" />
<input name="continue" type="submit" value="Login" />
<input name="continue" type="button" value="Clear" />
</form>
</body>
<html>
form要素はこのように位置決めできます.
1.絶対位置決め(HTML文の変化に最も影響されやすい)
2.HTMLの最初のform要素
3.属性がidで、値が「logiinForm」のform要素が含まれています.
login_form = driver.find_element_by_xpath("/html/body/form[1]")
login_form = driver.find_element_by_xpath("//form[1]")
login_form = driver.find_element_by_xpath("//form[@id='loginForm']")
username要素はこのように位置づけられます.
1.form要素のinputサブ要素には、属性がnameであり、値が「username」の要素が含まれています.
2.属性がidで、値が「logiinForm」のform要素を含む最初のinputサブ要素
3.属性がname、値が"username"の最初のinput要素を含む
username = driver.find_element_by_xpath("//form[input/@name='username']")
username = driver.find_element_by_xpath("//form[@id='loginForm']/input[1]")
username = driver.find_element_by_xpath("//input[@name='username']")
Clearボタンはこのように位置決めできます.
1.属性はnameで、値は「continue」と属性はtypeで、値は「button」のinput元素です.
2.属性がidで、値が「logiinForm」のform要素を含む4番目のinputサブ要素
clear_button = driver.find_element_by_xpath("//input[@name='continue'][@type='button']")
clear_button = driver.find_element_by_xpath("//form[@id='loginForm']/input[4]")
Xpath学習リンクを添付します.参照:http://www.w3school.com.cn/xpath/index.asp
要素の発見に役立つXpathの付加的なコンポーネントは、以下の通りである.
Xpath Checker (インタラクティブなXPTh表式エディタ)
Firebug (ウェブページのCSS、HTML、JavaScriptに対してリアルタイム編集、調整、監視を行う)
XPSヘルパー (ホームページのXpathの抽出、編集、評価に便利)
英文の文書の出所、参照:https://selenium-python.readthedocs.org/en/latest/locating-elements.html