頁面元素定位的方式 主要有8種 分類如下
元素屬性定位 有 id , name , class_name
元素標簽定位 tag_name
鏈接定位 link_text , partial_link_text
選擇器定位 xpath , css_selector

因為很多時候只通過 id , name , class_name ,tag_name , link_text , partial_link_text 是無法定位到某些元素的 此時就需要借助 xpath 和css_selector
定位方式 難點和重點也就是xpath和css_selector 這兩種其實只要會一種即可 。css_selector 這種方式這里就不深入講解,有興趣的可以專門去學習下。
xpath 的定位需要對 xml/html 有一定的了解
1.斜杠 / 的用法和平時選擇路徑(絕對路徑)用法相同 例如: /xxx 就是選取根節點 /xxx/yyy 就是通過絕對路徑選擇到元素
2.雙斜桿 // 的用法和平時路徑(相對路徑)用法相同 例如 //xxx 就是選取整個頁面的xxx元素
1和2是可以混合使用的 例如 //xxx/yyy 選取的就是xxx元素下的yyy元素
3. 點 . 選取當前節點的父元素節點
4.點點 .. 選取的是父元素的地址
5. @ 的運用 例如//xxx[@id] 選取的就是xxx元素下有id屬性得元素 ,//xxx[@id=yyy] 選取的就是xxx下 id為yyy的元素
6.以上這些如果有多個值的時候 默認返回的都是第一個值 例如 通過 /html/.../input 獲取到有多個值 那么返回的是第一個值 要獲取第二個值可用 /html/.../input[2]
下面舉例幾個
‘//frame//input‘ 默認獲取的是第一個值
‘//frame//input[2]’ 獲取的是第二個
‘//input[@id] ‘含有id的
‘//input[not(@id)] ’ 不含id的
‘//input[not(@id=“name”)]’ id為name的
‘//*’ 查找整個文檔的所有元素
‘//*[(count(input))=2]’ input的個數為2的標簽
...
這種例子很多 還要自己慢慢深入了解
8中定位模式 還有elements的這種

elements 這種返回的是一個列表 所有要利用索引獲取到元素 例如 find_elements_by_id(‘xxx’) 那么他返回的就是id為xxx的所有元素 要獲取值必須加上索引
