目次
1. Webドライバーの配置方法
driver.find_element_by_id()
driver.find_element_by_name()
driver.find_element_by_class_name()
4.リンクの位置決め--> 正確な位置決め
driver.find_element_by_link_text()
5.部分リンクの位置決め--> ファジー位置決め
driver.find_element_by_partial_link_text()
6. tag_name の配置--> タグ名の配置
ページ上の input という名前のタグをすべて検索し、リストを返します。
driver.find_elements_by_tag_name()
7. CSSセレクター
driver.find_element_by_css_selector()
8. xpathの位置決め
// 2 つのスラッシュは相対パスを表します * 任意のタグを表します
driver.find_element_by_xpath()
9.方法別
from selenium.webdriver.common.by import By
1)driver.find_element(By.XXX,’定位值’)
XXX は上記 8 つの位置決めメソッドの名前であり、このメソッドの要素値はタプル形式で定義できます。
ページ要素の一括管理に適しています。
2)driver.find_elements(By.XXX,’定位值’)
このメソッドは、条件を満たすすべての要素を検索し、リスト形式で返します。
1. xpath の基本的な位置決めの使用法
1) 属性値を利用した配置
driver.find_element_by_xpath(‘//标签名[@属性名=“属性值”]’)
原則的に一意の値であれば任意の値を使用できます。
Eg:-- driver.find_element_by_xpath('//input[@id="loginUsername"]')
-- driver.find_element_by_xpath('//input[@class="form-control tecon required"]')
-- driver.find_element_by_xpath('//input[@placeholder="[email protected]"]')
2)複数の属性値を使用した位置決め
- 異なる属性値は、and、or などの論理演算子で接続できます。
--driver.find_element_by_xpath(‘//标签名[@属性名1=“属性值1” and @属性名2=“属性值2”]’)
- 個別に記入することもできます
--driver.find_element_by_xpath(‘//标签名[@属性名1=“属性值1”][ @属性名2=“属性值2”]’)
Eg:--driver.find_element_by_xpath('//input[@id="loginUsername" and @name="username"]')
--driver.find_element_by_xpath('//input[@id="loginUsername"][@name="username"]')
2. xpath 相対パス/絶対パスの位置決め
1)絶対パス
/ から始まり、タグ名に基づいてルート ディレクトリから一度に 1 レベルずつ検索します (ID 入力ボックスの検索など)。
/html/body/div[2]/div/div/from/div[3]/input
2)相対パス
// 以降は、配置対象の要素が一意の属性値を持たないが、その親要素、子要素、兄弟要素が一意の属性値を持つ場合に使用できます。
たとえば、ID 入力ボックスの親要素を見つけたいが、そのクラス属性がパスワード入力ボックスの親要素と同じである場合、クラス属性を直接使用してその要素を見つけることは一意の値ではありません。まず ID 入力ボックス要素を配置して、その親要素を逆に配置することができます。
//input[@id="loginUsername"]/..
上位ディレクトリに戻る場合は..で表し、Linuxの操作と同様です。
3. xpath テキスト、あいまいな論理的な位置決め
1)テキストの配置
テキストを含み、基本的に変更されない要素は、テキストを使用して直接配置できます。
たとえば、ログイン ボタンの位置の値は次のように表すことができます。
//button[text()=”Login”]
2)ファジーな位置決め
これは、contains()、starts-with()、ends-with() の 3 つの関数に基づいて、動的な属性値が発生したときに使用できます。
1)) contains() には xxx の属性値が含まれます
//button[contains(@class,"btn")]
2)) xxx で始まるstarts-with() 属性値
//button[starts-with(@class,"btn")]
3)) xxx で終わる Ends-with() 属性値
//input[ends-with(@class,"btn-box")]