国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

selenium的八大元素定位方式

這篇具有很好參考價(jià)值的文章主要介紹了selenium的八大元素定位方式。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

1、什么是元素定位

根據(jù)元素的某個(gè)特征在網(wǎng)頁中找到對(duì)應(yīng)的元素,定位元素的目的是為了操作元素,在Web自動(dòng)化中,定位元素是后續(xù)一切操作的前提條件。

2、元素的八大定位方式

2.1、id : 根據(jù)標(biāo)簽/元素的id屬性值定位

一般情況下元素的id是唯一的,所以通過這個(gè)方法可以很輕松地找到元素。

eg:通過id定位百度的輸入框并發(fā)送值

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 百度輸入框的id值為kw,需要導(dǎo)入定位選擇方式By
from selenium.webdriver.common.by import By

driver.find_element(By.ID, "kw").send_keys("python")

不能通過id定義的情況

  • id是動(dòng)態(tài)變化的
  • 不存在id
  • id的屬性值不唯一
  • id中有數(shù)字不用
2.2、name:根據(jù)標(biāo)簽/元素的name屬性值定位

一般情況下元素的名稱也是唯一的,所以通過名稱可以找到元素。

eg:通過name定位百度的輸入框并發(fā)送值

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 百度輸入框的name值為wd,需要導(dǎo)入定位選擇方式By
from selenium.webdriver.common.by import By

driver.find_element(By.NAME, "wd").send_keys("python")
2.3、tag_name:根據(jù)標(biāo)簽/元素的tag_name屬性值定位

根據(jù)元素的標(biāo)簽名稱來定位元素,因?yàn)橐粋€(gè)頁面上往往有多個(gè)同名的標(biāo)簽,所以這種方法的局限性較大。這個(gè)方法返回值的類型是一個(gè)webelement對(duì)象。

eg:定位input標(biāo)簽

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位input標(biāo)簽,需要導(dǎo)入定位選擇方式By
from selenium.webdriver.common.by import By

element_input = driver.find_element(By.TAG_NAME, 'input')
2.4、class_name:根據(jù)標(biāo)簽/元素的class_name屬性定位

根據(jù)元素的類名定位元素,需要注意的是作為定位條件的類名必須是唯一的,否則會(huì)定位不到想找的元素,當(dāng)元素有多個(gè)類名時(shí), 選擇其中一個(gè)唯一的類名來定位。

selenium的八大元素定位方式,selenium,python

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 通過類名來定位這個(gè)元素,并輸入Selenium WebDriver
driver.find_element(By.CLASS_NAME, "s_ipt").send_keys("python")

# 選擇其中一個(gè)唯一的類名s_btn來定位元素, 中間的空格也可用使用.代替
driver.find_element(By.CLASS_NAME, "bg.s_btn").click()
2.5、link_text:根據(jù)超鏈接的文本進(jìn)行定位

根據(jù)元素的鏈接文本來定位元素,適用于超鏈接元素,超鏈接元素的標(biāo)簽是a,在一個(gè)頁面上,超鏈接文本一般是唯一的。返回值是一個(gè)WebElement對(duì)象

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位文本是新聞的超鏈接元素,并點(diǎn)擊
driver.find_element(By.LINK_NAME,"新聞").click()
2.6、partial_link_text:根據(jù)超鏈接的模糊文本進(jìn)行定位

根據(jù)元素的鏈接文本的一部分來定位元素,要注意選取的部分文本要唯一,否則定位不到需要找的元素。

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 在京東頁面定位文本包含家用的超鏈接元素,并點(diǎn)擊
driver.find_element(By.PARTIAL_LINK_NAME,"家用").click()
2.7、xpath:根據(jù)xpath表達(dá)式定位

特殊符號(hào)表示的含義:

/ :表示根或者子節(jié)點(diǎn)

//:任意節(jié)點(diǎn)

@ :表示當(dāng)前的節(jié)點(diǎn)的對(duì)象

* :表示通配符,只針對(duì)標(biāo)簽名

[ ]:相當(dāng)于過濾器

(1)、絕對(duì)路徑

根據(jù)網(wǎng)頁中的層級(jí)目錄遞進(jìn)進(jìn)行查找對(duì)應(yīng)元素。

eg:查找百度的輸入框,并發(fā)送元素“Python”

selenium的八大元素定位方式,selenium,python

PS:這個(gè)例子有兩個(gè)查詢結(jié)果,定位時(shí)會(huì)返回在前面的結(jié)果,這個(gè)例子不是很合適,但是我懶了。

# 創(chuàng)建瀏覽器對(duì)象driver
# 通過XPath定位用戶名輸入框
driver.find_element(By.XPATH,"/html/body/div/div/div/div/div/form/span/input").send_keys("四川")

(2)、//標(biāo)簽名[@屬性名=屬性值]

把相對(duì)路徑和屬性結(jié)合起來查找對(duì)應(yīng)元素。

selenium的八大元素定位方式,selenium,python

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度首頁輸入框,輸入Python
driver.find_element(By.XPATH,'//input[@id="kw"]').send_keys("Python")

# 定位百度一下按鈕,點(diǎn)擊
driver.find_element(By.XPATH,'//input[@id="su"]').click()

(3)、//標(biāo)簽名[text()=值]

如果一個(gè)標(biāo)簽有文本,并且文本在頁面中是唯一的,可以通過指定文本來定位元素。

eg:定位百度首頁中的文本為“新聞”的內(nèi)容

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位文本是新聞的標(biāo)簽
driver.find_element(By.XPATH, "http://a[text()='新聞']").click()

(4)、//標(biāo)簽名[contains(@ 屬性,值)]

根據(jù)標(biāo)簽中包含的部分內(nèi)容來定位。

eg:定位標(biāo)簽中包含 "百度一下" 的標(biāo)簽

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位標(biāo)簽中包含 "百度一下" 的標(biāo)簽, 并點(diǎn)擊一下
driver.find_element(By.XPATH, '//input[contains(@value,"百度一下")]').click()

(5)、//標(biāo)簽名[starts-with(@ 屬性,值)]

根據(jù)標(biāo)簽中開頭的部分內(nèi)容來定位。

eg:定位標(biāo)簽中以?"result_t" 開頭的標(biāo)簽

selenium的八大元素定位方式,selenium,python

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位標(biāo)簽中以?"result_t" 開頭的標(biāo)簽
element = driver.find_element(By.XPATH, '//*[starts-with(@id,"result_t")]')

(6)、//標(biāo)簽名[@ 屬性名1=值1 and @ 屬性名2=值2]

如果通過一個(gè)屬性不能準(zhǔn)確地定位到元素,可以使用邏輯運(yùn)算符and來指定多個(gè)屬性定位元素。

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.XPATH,"http://input[@id='kw' and @name='wd']").send_keys("Python")

# 定位百度一下按鈕,點(diǎn)擊
driver.find_element(By.XPATH,"http://input[@id='su' and @value='百度一下']").click()

(7)、//標(biāo)簽[@ 屬性名=值]/標(biāo)簽名[n]

當(dāng)通過一個(gè)屬性不能準(zhǔn)確地定位到元素,可以使用邏輯運(yùn)算符and來指定多個(gè)屬性來定位元素。

eg:定位百度輸入框并發(fā)送值“python”

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.XPATH,"http://input[@id='kw' and @name='wd']").send_keys("Python")

(8)、//標(biāo)簽名[ends-with(@ 屬性,值)]------已被移除

2.8、css_selector:根據(jù)樣式表達(dá)式進(jìn)行定位

(1)、#id:用元素的id屬性進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度一下輸入框,輸入Python
driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("python")

(2)、 .class . class:以元素的類名進(jìn)行定位

如果元素有一個(gè)class屬性,就通過.class進(jìn)行定位

如果元素有多個(gè)class屬性,class類名之間用.來連接

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.CSS_SELECTOR, ".s_ipt").send_keys("python")

#定位百度一下按鈕,這個(gè)元素有多個(gè)class值,可以指定多個(gè)類名定位,也可以選擇其中一個(gè)唯一的類名來定位
driver.find_element(By.CSS_SELECTOR, ".bg.s_btn").click()

(3)、標(biāo)簽名:以元素的標(biāo)簽的名稱進(jìn)行定位

直接寫標(biāo)簽名,前面不需要加任何符號(hào)

一般結(jié)合其他屬性使用

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.CSS_SELECTOR, "input").send_keys("python")

(4)、標(biāo)簽名#id:以元素的標(biāo)簽名的名稱和id屬性進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.CSS_SELECTOR, "input#kw").send_keys("python")

(5)、標(biāo)簽名.class:以元素的標(biāo)簽名的名稱和class屬性進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.CSS_SELECTOR, "input.s_ipt").send_keys("python")

(6)、[屬性名=值]:以屬性的值進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.CSS_SELECTOR, "[name='wd']").send_keys("python")

(7)、[屬性名1=值1][屬性名2=值2]:以屬性1的值1和屬性2的值2進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
driver.find_element(By.CSS_SELECTOR, "[name='wd']").send_keys("python")

(8)、標(biāo)簽名[屬性名=值]:以屬性等于一個(gè)值進(jìn)行定位;

標(biāo)簽名[屬性名1=值1][屬性名2=值2]:多個(gè)屬性值進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 標(biāo)簽和單個(gè)屬性值進(jìn)行定位,并發(fā)送值
driver.find_element(By.CSS_SELECTOR, "input[name='wd']").send_keys("python")

# 標(biāo)簽和多個(gè)屬性值進(jìn)行定位,并發(fā)送值
driver.find_element(By.CSS_SELECTOR, "input[name='wd']").send_keys("python")

(9)、標(biāo)簽名[屬性名*=值]:以屬性包含一個(gè)值進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度一下按鈕,點(diǎn)擊
driver.find_element(By.CSS_SELECTOR, "input[value*='百度']").click()

(10)、標(biāo)簽名[屬性名^=值]:以屬性的開始值進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度一下按鈕,并點(diǎn)擊
driver.find_element(By.CSS_SELECTOR, "input[value^='百度']").click()

(11)、標(biāo)簽名[屬性名$=值]:以屬性的結(jié)束值進(jìn)行定位

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度一下按鈕,并點(diǎn)擊
driver.find_element(By.CSS_SELECTOR, "input[value$='一下']").click()

(12)、標(biāo)簽名 > 子標(biāo)簽[屬性名$=值] + 兄弟標(biāo)簽名

# 創(chuàng)建瀏覽器對(duì)象driver
driver.find_element(By.CSS_SELECTOR, '#s-top-left>a[href$="tieba.baidu.com/"] + a').click()

(13)、定義兄弟標(biāo)簽

a、標(biāo)簽名 > 子標(biāo)簽 :first-child

????????定位標(biāo)簽下該子標(biāo)簽的第一個(gè)子標(biāo)簽

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框所在目錄下的的第一個(gè)標(biāo)簽,輸入Python
# 使用fist-child
driver.find_element(By.CSS_SELECTOR, "span#s_kw_wrap>input:first-child").send_keys("Python")

b、標(biāo)簽名 > 子標(biāo)簽 :nth-child(n)

????????定位標(biāo)簽下該子標(biāo)簽的第n個(gè)子標(biāo)簽

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
# 使用nth-child(n)
driver.find_element(By.CSS_SELECTOR, "span#s_kw_wrap>input:nth-child(2)").send_keys("Python")

c、標(biāo)簽名 > 子標(biāo)簽 :last-child

????????定位標(biāo)簽下該子標(biāo)簽的最后一個(gè)子標(biāo)簽-----慎用文章來源地址http://www.zghlxwxcb.cn/news/detail-839658.html

# 創(chuàng)建瀏覽器對(duì)象driver
# 定位百度輸入框,輸入Python
# 使用last-child
driver.find_element(By.CSS_SELECTOR, "span#s_kw_wrap>input:last-child").send_keys("Python")

到了這里,關(guān)于selenium的八大元素定位方式的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 【web自動(dòng)化】selenium+python八大元素定位

    【web自動(dòng)化】selenium+python八大元素定位

    推薦:b站軟件測試?yán)习?注意點(diǎn) 1.有id才能能使用id定位 2.id不能重復(fù) 通過百度頁面,演示如何查找id確定id是否重復(fù),其他方式定位也可以這樣搜索 代碼如下(示例): 如果有多個(gè)class_name,可以使用 find_elements 和取下標(biāo)的方式 例如:打開嗶哩嗶哩頁面,有番劇,電影等等,他

    2024年01月21日
    瀏覽(27)
  • 自學(xué)Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和優(yōu)缺點(diǎn)

    自學(xué)Python 69 Selenium八大元素定位方法(新版BY方法)_selenium定位元素的方法和優(yōu)缺點(diǎn)

    文章目錄 Python Selenium八大元素定位方法(新版BY方法) 前言 一、常用的八種定位方法(新舊對(duì)比) 二、查看網(wǎng)頁元素 三、八大元素定位示例 1、id定位 2、name定位 3、class定位 4、tag定位 5、link定位 6、partial_link定位 7、xpath定位 8、CSS定位 在學(xué)習(xí)使用Selenium對(duì)網(wǎng)頁元素進(jìn)行定位時(shí)

    2024年04月22日
    瀏覽(24)
  • 自學(xué)Python 69 Selenium八大元素定位方法(新版BY方法)

    自學(xué)Python 69 Selenium八大元素定位方法(新版BY方法)

    ??在學(xué)習(xí)使用Selenium對(duì)網(wǎng)頁元素進(jìn)行定位時(shí),發(fā)現(xiàn)很多教程依然使用老版的元素定位方法,但是對(duì)于新版selenium來說,已經(jīng)棄用了之前的元素定位方法,所以在使用的時(shí)候會(huì)發(fā)現(xiàn)有報(bào)錯(cuò),會(huì)被一條橫線劃掉。所以今天來總結(jié)一下新版selenium對(duì)網(wǎng)頁元素進(jìn)行定位的操作方法。

    2024年02月13日
    瀏覽(20)
  • Python+selenium自動(dòng)化八大元素定位方法及實(shí)例(超詳細(xì))

    Python+selenium自動(dòng)化八大元素定位方法及實(shí)例(超詳細(xì))

    目錄 一、selenium模塊中的find_element_by_id方法無法使用 二、Python+selenium自動(dòng)化八大元素定位方法 使用場景: 1、通過id屬性定位:driver.find_element(By.ID,\\\"value\\\") 2、通過name屬性定位:driver.find_element(By.NAME,\\\"value\\\") 3、通過class屬性定位:driver.find_element(By.CLASS_NAME,\\\"value\\\") 4、通過tag_name屬

    2024年02月19日
    瀏覽(26)
  • Selenium(一):八大元素定位

    find_element() 中 類型為空,默認(rèn)為By.ID

    2024年04月23日
    瀏覽(96)
  • Selenium元素定位——八大方法詳述

    Selenium元素定位——八大方法詳述

    元素:由標(biāo)簽頭 + 標(biāo)簽尾 + 標(biāo)簽頭和標(biāo)簽尾包括的文本內(nèi)容; 元素的信息就是指元素的標(biāo)簽名及元素的屬性; 元素的層級(jí)結(jié)構(gòu)就是指元素之間相互嵌套的層級(jí)結(jié)構(gòu); 元素定位最終就是通過元素的信息或者元素的層級(jí)結(jié)構(gòu)來進(jìn)行元素定位; webdriver 提供了一系列的對(duì)象定位方

    2024年02月06日
    瀏覽(23)
  • selenium腳本編寫及八大元素定位方法

    selenium腳本編寫及八大元素定位方法

    selenium腳本編寫 上篇文章介紹了selenium環(huán)境搭建,搭建好之后就可以開始寫代碼了 基礎(chǔ)腳本,打開一個(gè)網(wǎng)址 打開本地HTML文件 上篇文章我自己寫了一個(gè)html文件,放在了當(dāng)前路徑下 第一種方式 通過絕對(duì)路徑打開 第二種方式 通過相對(duì)路徑打開 本質(zhì)上也是通過方法把相對(duì)路徑轉(zhuǎn)為

    2024年01月16日
    瀏覽(42)
  • 【selenium模塊-WEB自動(dòng)化】八大網(wǎng)頁元素定位方法(三)

    【selenium模塊-WEB自動(dòng)化】八大網(wǎng)頁元素定位方法(三)

    一、id 定位 標(biāo)簽的 id 具有唯一性,就像人的身份證。 二、name 定位 name 指定標(biāo)簽的名稱,在頁面中可以不唯一。 三、class 定位 class 指定標(biāo)簽的類名,在頁面中可以不唯一。 四、tag 定位 每個(gè) tag 往往用來定義一類功能,所以通過 tag 來識(shí)別某個(gè)元素的成功率很低,每個(gè)頁面

    2024年02月15日
    瀏覽(23)
  • 3-UI自動(dòng)化-八大元素定位,xpath定位方式和相關(guān)的常問面試題

    3-UI自動(dòng)化-八大元素定位,xpath定位方式和相關(guān)的常問面試題

    ? color{red}{heartsuit} ? 上篇我們了解了HTML頁面的結(jié)構(gòu)和常用的標(biāo)簽和屬性,介紹2-UI自動(dòng)化-HTML頁面的構(gòu)成和常見標(biāo)簽、屬性。小白的話建議先看看,再來學(xué)習(xí)八大元素定位。 UI自動(dòng)化面試基本上逃不了這道面試題。八大元素定位。 通過id屬性 通過class屬性,注意,表達(dá)式中

    2024年02月08日
    瀏覽(23)
  • python+selenium的web自動(dòng)化測試之8種元素定位方式詳解

    python+selenium的web自動(dòng)化測試之8種元素定位方式詳解

    目錄 前言 單一屬性定位 通過元素的id 通過元素的name 通過元素的class 通過元素的標(biāo)簽名 通過元素的超鏈接文本 通過元素的部分超鏈接文本 XPTH定位 CSS定位 輔助定位工具 ? 我們?cè)谧鯳EB自動(dòng)化時(shí),最根本的就是操作頁面上的各種元素,而操作的基礎(chǔ)便是元素的定位,只有準(zhǔn)確

    2023年04月16日
    瀏覽(100)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包