1. 程式人生 > 其它 >selenium css定位方法

selenium css定位方法

這一篇介紹一些Css,Css相比與XPath來說,更加複雜點,但是Css定位速度比XPath方法要快,書寫更加簡單。

Css

層疊樣式表(英文全稱:Cascading Style Sheets)是一種用來表現HTML(標準通用標記語言的一個應用)或XML(標準通用標記語言的一個子集)等檔案樣式的計算機語言。CSS不僅可以靜態地修飾網頁,還可以配合各種指令碼語言動態地對網頁各元素進行格式化。CSS選擇器可以較為靈活地選擇控制元件的任意屬性,一般情況下,CSS定位速度比XPath定位速度快。

Css學習文件:https://www.w3school.com.cn/cssref/css_selectors.asp

Css選擇器常用語法

選擇器例子例子描述
.class .intro 選擇 class="intro" 的所有元素。
#id #firstname 選擇 id="firstname" 的所有元素。
* * 選擇所有元素。
element p 選擇所有 <p> 元素。
element,element div,p 選擇所有 <div> 元素和所有 <p> 元素。
elementelement div p 選擇 <div> 元素內部的所有 <p> 元素。
element>element div>p 選擇父元素為 <div> 元素的所有 <p> 元素。
element+element div+p 選擇緊接在 <div> 元素之後的所有 <p> 元素。
[attribute] [target] 選擇帶有 target 屬性所有元素。
[attribute=value] [target=_blank] 選擇 target="_blank" 的所有元素。
[attribute~=value] [title~=flower] 選擇 title 屬性包含單詞 "flower" 的所有元素。
[attribute|=value] [lang|=en] 選擇 lang 屬性值以 "en" 開頭的所有元素。

Css例項定位

1、通過Class定位

Class定位通過.來進行表示

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通過Css中的class定位
driver.find_element_by_css_selector('.s_ipt').send_keys('部落格園')

2、通過id定位

Id定位通過#來表示

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通過id定位,id通過#表示
driver.find_element_by_css_selector('#kw').send_keys('部落格園')

3、通過標籤名

Css中可以直接通過標籤名進行匹配

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通過標籤名定位
driver.find_element_by_css_selector('input')

4、通過屬性來定位

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通過屬性定位
driver.find_element_by_css_selector('[autocomplete="off"]').send_keys('部落格園')
# 通過name屬性定位
# driver.find_element_by_css_selector('[name="wd"]').send_keys('部落格園')

5、通過組合形式進行定位

通過父級或者爺爺級別進行定位

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 通過父級組合形式
driver.find_element_by_css_selector('span > input#kw').send_keys('部落格園')
# 通過元素形式
# driver.find_element_by_css_selector('input#kw').send)keys('部落格園')

6、通過包含元素內容定位

這裡比如class中以s_ipt開頭的

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 檢視已元素內容開頭
driver.find_element_by_css_selector("[class^='s_ipt']").send_keys('部落格園')

7、 通過以元素結尾內容定位

# coding:utf-8
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
# 檢視kw元素結尾定位
driver.find_element_by_css_selector("[id$='kw']").send_keys('部落格園')

原文連結:

https://www.cnblogs.com/qican/p/13202501.html