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

自動(dòng)化測(cè)試之八大元素定位方式(python3.10+selenium4)

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

一、元素定位的目的

元素的定位是自動(dòng)化測(cè)試核心。要操作一個(gè)對(duì)象,首先要識(shí)別定位或找到這個(gè)對(duì)象。為了實(shí)現(xiàn)網(wǎng)頁(yè)整體布局,我們先要知道,一個(gè)元素,是如何定位到頁(yè)面上的某個(gè)位置的,這就是元素定位。

二、八大元素定位法

系統(tǒng)環(huán)境

  • Windows 11 ??

  • python3.10.5 ??

  • selenium 4.8.0 ??

注意:以下每種定位方式均有一個(gè)案例來(lái)展現(xiàn)。

1、id定位元素

id是當(dāng)前整個(gè)HTML頁(yè)面中唯一的,所以可以通過(guò)id屬性來(lái)唯一定位一個(gè)元素,是首選的元素定位方式。首先打開(kāi)百度頁(yè)面,通過(guò)右擊->檢查或者快捷鍵F12打開(kāi)開(kāi)發(fā)者工具,定位到百度搜索框的位置。然后通過(guò)send_key輸入關(guān)鍵詞,自動(dòng)點(diǎn)擊“百度一下”進(jìn)行搜索,最后退出瀏覽器。通過(guò)該案例能夠?qū)W會(huì)此定位元素方法。

自動(dòng)化測(cè)試tag_name,自動(dòng)化測(cè)試,python,chrome,開(kāi)發(fā)語(yǔ)言,自動(dòng)化,測(cè)試工具,Powered by 金山文檔
from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)百度頁(yè)面
driver.get("https://www.baidu.com/")

# 定位到百度搜索框通過(guò)id定位元素的方式
# .send_keys()發(fā)送關(guān)鍵詞
driver.find_element(By.ID, "kw").send_keys("python")

# 通過(guò)id定位到百度一下按鈕,點(diǎn)擊一下
driver.find_element(By.ID, "su").click()

# 延時(shí)3秒
sleep(3)

# 退出瀏覽器
driver.quit()

2、name元素定位

根據(jù)元素的name來(lái)定位屬性,但name并不是唯一的。

name方式:1、元素中必須要有name的屬性 2、name的屬性在頁(yè)面中如果是唯一的,那么可以準(zhǔn)確的定位到元素(不是唯一的,默認(rèn)返回的是第一個(gè)元素)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)百度頁(yè)面
driver.get("https://www.baidu.com/")

# 定位到百度搜索框通過(guò)name定位元素的方式
#  name方式:1、元素中必須要有name的屬性  2、name的屬性在頁(yè)面中如果是唯一的,那么可以準(zhǔn)確的定位到元素(不是唯一的,默認(rèn)返回的是第一個(gè)元素)
driver.find_element(By.NAME, "wd").send_keys("python")

# 通過(guò)id定位到百度一下按鈕,點(diǎn)擊一下
driver.find_element(By.ID, "su").click()

# 延時(shí)3秒
sleep(3)

# 退出瀏覽器
driver.quit()

3、class_name元素定位

根據(jù)Class定位屬性,主要是用來(lái)元素進(jìn)行分組,并對(duì)這一級(jí)元素設(shè)置相同的樣式。所以class屬性在當(dāng)前html頁(yè)面當(dāng)中,也是不能唯一定位到一個(gè)元素的。

class_name定位元素:1、在元素中需要有class的屬性;2、class的屬性值不是唯一的,那么不能唯一的定位到指定的元素。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)百度頁(yè)面
driver.get("https://www.baidu.com/")

# 定位到百度搜索框通過(guò)class定位元素的方式
#  class_name定位元素:1、在元素中需要有class的屬性;2、class的屬性值不是唯一的,那么不能唯一的定位到指定的元素
driver.find_element(By.CLASS_NAME, "s_ipt").send_keys("python")

# 通過(guò)id定位到百度一下按鈕,點(diǎn)擊一下
driver.find_element(By.ID, "su").click()

# 延時(shí)3秒
sleep(3)

# 退出瀏覽器
driver.quit()

4、tag_name元素定位

tag_name是通過(guò)標(biāo)簽名稱來(lái)定位的,如<input>標(biāo)簽。

tag_name定位元素:標(biāo)簽名是會(huì)重復(fù),默認(rèn)返回的是第一個(gè)符合的元素。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)百度頁(yè)面
driver.get("https://www.taobao.com/")


# 定位到百度搜索框通過(guò)tag_name定位元素的方式
# tag_name定位元素:1、標(biāo)簽名是會(huì)重復(fù),默認(rèn)返回的是第一個(gè)符合的元素
driver.find_element(By.TAG_NAME, "input").send_keys("三體")

# 延時(shí)3秒
sleep(3)

# 退出瀏覽器
driver.quit()

5、link_text元素定位

link_text 只能使用精準(zhǔn)的匹配(a標(biāo)簽的全部文本內(nèi)容)。

link_text定位:必須根據(jù)鏈接上完整的文本內(nèi)容去進(jìn)行定位。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)百度頁(yè)面
driver.get("https://www.baidu.com/")


# 定位到百度搜索框通過(guò)link_text定位元素的方式
# link_text定位元素:1、必須根據(jù)鏈接上完整的文本內(nèi)容去進(jìn)行定位。
driver.find_element(By.LINK_TEXT, "新聞").click()

# 延時(shí)3秒
sleep(3)

# 退出瀏覽器
driver.quit()

6、partial_link_text元素定位

partial_link_text可以使用精準(zhǔn)或模糊匹配,如果使用模糊匹配最好能使用可以唯一的關(guān)鍵字;如果有多個(gè)值,默認(rèn)返回第一個(gè)值。

partial_link_text定位:定位的鏈接文本內(nèi)容在整個(gè)頁(yè)面當(dāng)中唯一的出現(xiàn)一次,那么可以準(zhǔn)確定位到元素,否則默認(rèn)返回第一個(gè)值。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)百度頁(yè)面
driver.get("https://www.baidu.com/")

# 定位到百度輸入框,搜索熱點(diǎn)新聞
driver.find_element(By.ID, "kw").send_keys("熱點(diǎn)新聞")

# 定位到百度一下按鈕,并且點(diǎn)擊
driver.find_element(By.ID, "su").click()

# 停留3秒,加載頁(yè)面
sleep(3)

# 從返回的結(jié)果頁(yè)面,通過(guò)模糊匹配定位到包含了“騰訊網(wǎng)”的超連接
# partial_link_text定位:定位的鏈接文本內(nèi)容在整個(gè)頁(yè)面當(dāng)中唯一的出現(xiàn)一次,那么可以準(zhǔn)確定位到元素,否則默認(rèn)返回第一個(gè)
# .click()點(diǎn)擊的操作
driver.find_element(By.PARTIAL_LINK_TEXT, "騰訊網(wǎng)").click()

# 延時(shí)3秒
sleep(5)

# 退出瀏覽器
driver.quit()

7、xpath元素定位

7-1、xpath簡(jiǎn)介

xpath即是XML Path的簡(jiǎn)稱,它是一門(mén)在XML文檔中查找元素信息的語(yǔ)言。

7-2、使用xpath目的
  1. 在前面寫(xiě)的定位方式不能實(shí)現(xiàn)的時(shí)候使用。

  1. id、name、class_name定位前提是要有這個(gè)屬性,否則不能定位。

  1. tag_name方式如果有很多相同的標(biāo)簽名,定位不方便。

  1. link的定位方式只是針對(duì)超鏈接的。

7-3、xpath語(yǔ)法

xpath語(yǔ)法

表達(dá)式

說(shuō)明

/aaa

選取根節(jié)點(diǎn)為aaa的元素

/aaa/bbb

選取aaa標(biāo)簽下的bbb標(biāo)簽

//aaa

選取所有aaa的標(biāo)簽元素

//aaa/bbb

選取所有父元素為aaa的bbb元素

.

選取當(dāng)前節(jié)點(diǎn)

..

選取當(dāng)前節(jié)點(diǎn)的父節(jié)點(diǎn)

自動(dòng)化測(cè)試tag_name,自動(dòng)化測(cè)試,python,chrome,開(kāi)發(fā)語(yǔ)言,自動(dòng)化,測(cè)試工具,Powered by 金山文檔

注意:以下方式大部分使用該案例。

7-4-1、xpath定位方式一(絕對(duì)路徑)

語(yǔ)法:以單斜杠開(kāi)頭逐級(jí)開(kāi)始編寫(xiě),不能跳級(jí)。如:("html/body/div/div/form/input")。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# 定位到姓名輸入框
# xpath定位方式一:絕對(duì)路徑
driver.find_element(By.XPATH, "html/body/div/form/fieldset/table/tbody/tr/td/input").send_keys("admin")

# 延時(shí)3秒
sleep(5)

# 退出瀏覽器
driver.quit()
7-4-2、xpath定位方式二(相對(duì)路徑)

相對(duì)路徑是只給出元素路徑的部分信息,在 html 的任意層次中尋找符合條件的元素。(元素名不知道,可用*)語(yǔ)法:以雙斜杠開(kāi)頭,雙斜杠后邊跟元素名稱。如://input。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# 定位到多行文本輸入框(簡(jiǎn)介)
# xpath定位方式二:相對(duì)路徑
driver.find_element(By.XPATH, "http://textarea").send_keys("這是一個(gè)簡(jiǎn)介。")

# 延時(shí)3秒
sleep(5)

# 退出瀏覽器
driver.quit()
7-4-3、xpath定位方式三(路徑結(jié)合屬性)

語(yǔ)法://input[@id='id值']。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# 定位到密碼輸入框
# xpath定位方式三:路徑結(jié)合屬性的形式(定位到密碼輸入框)
driver.find_element(By.XPATH, "http://input[@id='Password1']").send_keys("123456789")

# 延時(shí)3秒
sleep(5)

# 退出瀏覽器
driver.quit()
7-4-4、xpath定位方式四(文本內(nèi)容匹配)

語(yǔ)法://a[text()="新聞"],標(biāo)簽為a文本信息為"新聞"。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get("https://www.hao123.com/")

# 延時(shí)3秒
sleep(3)

# xpath定位方式四:文本內(nèi)容匹配(定位到hao123當(dāng)中的京東鏈接)
driver.find_element(By.XPATH, "http://a[text()='京東']").click()

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
7-4-5、xpath定位方式五(部分文本信息包含匹配)

語(yǔ)法://a[contains(text(),"新")] 或者 //a[contains(text(),"聞")]

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get("https://www.hao123.com/")

# 延時(shí)3秒
sleep(3)

# xpath定位方式五:部分文本內(nèi)容進(jìn)行匹配(定位到hao123當(dāng)中的嗶哩嗶哩鏈接)
driver.find_element(By.XPATH, "http://a[contains(text(), '嗶哩')]").click()

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
7-4-6、xpath定位方式六(路徑結(jié)合邏輯)

語(yǔ)法://標(biāo)簽名[@屬性名='屬性值' and @屬性名='屬性值']

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# xpath定位方式六:通過(guò)多個(gè)屬性定位到姓名2輸入框
driver.find_element(By.XPATH, "http://input[@name='Name' and @id='t2']").send_keys("第二個(gè)姓名")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
7-4-7、xpath定位方式七(通過(guò)父級(jí)定位子級(jí)元素)

語(yǔ)法://標(biāo)簽名(或*)[@父級(jí)屬性名='父級(jí)屬性值']/input。

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# xpath定位方式七:通過(guò)父級(jí)定位子級(jí)元素
driver.find_element(By.XPATH, "http://td[@id='id1']/input").send_keys("通過(guò)父級(jí)定位到子級(jí)")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
7-4-8、xpath定位方式八(直接復(fù)制法)

通過(guò)手動(dòng)定位到的標(biāo)簽,點(diǎn)擊右擊復(fù)制xpath元素,直接復(fù)制到代碼里。如下所示。

自動(dòng)化測(cè)試tag_name,自動(dòng)化測(cè)試,python,chrome,開(kāi)發(fā)語(yǔ)言,自動(dòng)化,測(cè)試工具,Powered by 金山文檔
from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# xpath定位方式七:通過(guò)父級(jí)定位子級(jí)元素
driver.find_element(By.XPATH, "http://*[@id='e1']").send_keys("直接復(fù)制定位到郵箱")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()

8、CSS選擇器定位

8-1、CSS選擇器簡(jiǎn)介

CSS是一種標(biāo)記語(yǔ)言,在CSS標(biāo)記語(yǔ)言中找元素使用CSS選擇器,極力推薦使用CSS,CSS查找效率高,語(yǔ)法簡(jiǎn)單。

8-2、CSS選擇器定位方式(十四種)
  • id選擇器(語(yǔ)法:#id,如:#a1)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# 定位到姓名輸入框
# css定位方式一:id選擇器定位
driver.find_element(By.CSS_SELECTOR, "#t1").send_keys("CSS選擇器")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • class選擇器(語(yǔ)法:.class,如:.cA)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# 定位到密碼輸入框
# css定位方式二:class選擇器定位(密碼框)
driver.find_element(By.CSS_SELECTOR, ".passwd").send_keys("class")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 元素選擇器(語(yǔ)法:element,如:input)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式三:元素選擇器定位(標(biāo)簽名定位)(定位到簡(jiǎn)介多行文本框)
driver.find_element(By.CSS_SELECTOR, "textarea").send_keys("這是元素選擇器定位。")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 通用選擇器(語(yǔ)法:*,用于匹配任何元素)

(無(wú)代碼演示)

  • 多元素選擇器E,F(xiàn)(E,F(xiàn)同時(shí)匹配所有E元素或F元素,E和F之間用逗號(hào)分隔)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式五:多元素選擇器(同時(shí)定位到姓名和密碼輸入框)
# find_elements(By.CSS_SELECTOR, "元素")返回的是一個(gè)列表類型的元素,如果想定位到具體的元素,可以通過(guò)索引去拿(索引是從0開(kāi)始)
driver.find_elements(By.CSS_SELECTOR, "#t1,.passwd")[1].send_keys("5201314")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 后代元素選擇器E F(匹配所有屬于E元素后代的F元素,E和F之間用空格分隔)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式六:后代選擇器(定位到多行文本輸入框,簡(jiǎn)介)
# 后代選擇器,可以隔代,可以通過(guò)父與子的關(guān)系定位,還可以通過(guò)爺爺與孫子的關(guān)系定位
driver.find_element(By.CSS_SELECTOR, "tr textarea").send_keys("這是后代選擇器定位。")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 子元素選擇器E>F(匹配所有E元素的子元素F)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式七:子元素選擇器(定位到多行文本輸入框,簡(jiǎn)介)
# 子元素選擇器是必須直接子級(jí)才可以定位,隔代則定位不了
driver.find_element(By.CSS_SELECTOR, "td>textarea").send_keys("子元素選擇器定位。")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 毗鄰元素選擇器E+F(匹配緊隨E元素之后的同級(jí)元素F,只匹配第一個(gè))

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class7\test02.html")

# css定位方式八:毗鄰元素選擇器(定位到表單test里面的input標(biāo)簽)
driver.find_element(By.CSS_SELECTOR, "p+input").send_keys("毗鄰元素選擇器")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 同級(jí)元素器E~F(E~F匹配所有在E元素之后的同級(jí)F元素)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class7\test02.html")

# css定位方式九:同級(jí)元素選擇器(定位到表單test2里面的input標(biāo)簽)
driver.find_element(By.CSS_SELECTOR, "p~input").send_keys("同級(jí)元素選擇器")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 標(biāo)簽名[屬性名='屬性值'](指定標(biāo)簽名下的符合[]里面屬性條件的元素,區(qū)分大小寫(xiě))

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式十:標(biāo)簽結(jié)合屬性定位元素:標(biāo)簽名[屬性名='屬性值']
driver.find_element(By.CSS_SELECTOR, "input[id='Password1']").send_keys("123456789")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 標(biāo)簽名[屬性名^='a'](屬性值以a開(kāi)頭的標(biāo)簽元素,區(qū)分大小寫(xiě))

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式十一:標(biāo)簽名結(jié)合屬性定位元素:標(biāo)簽名[屬性名^='a'](屬性值以a開(kāi)頭)
# 案例:定位到第一個(gè)表單注冊(cè)頁(yè)面的密碼輸入框
driver.find_element(By.CSS_SELECTOR, "input[name^='P']").send_keys("123456789")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 標(biāo)簽名[屬性名$='a'](屬性的值以a結(jié)尾的指定標(biāo)簽名的元素,區(qū)分大小寫(xiě))

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式十二:標(biāo)簽名結(jié)合屬性定位元素:標(biāo)簽名[屬性名$='a'](屬性值以a結(jié)尾)
# 案例:定位到第一個(gè)表單注冊(cè)頁(yè)面的密碼輸入框
driver.find_element(By.CSS_SELECTOR, "input[name$='d']").send_keys("123456789")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 標(biāo)簽名[屬性名*='a'](屬性的值包括a 的指定標(biāo)簽的元素)

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式十三:標(biāo)簽名結(jié)合屬性定位元素:標(biāo)簽名[屬性名*='a'](屬性值包含a)
# 案例:定位到第一個(gè)表單注冊(cè)頁(yè)面的密碼輸入框
driver.find_element(By.CSS_SELECTOR, "input[name*='w']").send_keys("123456789")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()
  • 標(biāo)簽名[屬性1='a'][屬性2*='b']

from selenium.webdriver.common.by import By
from selenium import webdriver
from time import sleep

# 定義一個(gè)谷歌瀏覽器的對(duì)象
driver = webdriver.Chrome()

# 打開(kāi)測(cè)試頁(yè)面
driver.get(r"D:\Python_code\software_test\Class6\test.html")

# css定位方式十四:標(biāo)簽名結(jié)合多個(gè)屬性定位:標(biāo)簽名[屬性1='a'][屬性2*='b']
# 案例:定位到第一個(gè)表單注冊(cè)頁(yè)面的姓名2輸入框
driver.find_element(By.CSS_SELECTOR, "input[name='Name'][id='t2']").send_keys("123456789")

# 延時(shí)5秒
sleep(5)

# 退出瀏覽器
driver.quit()

三、總結(jié)

極力推薦使用CSS選擇器定位。原因:CSS查找效率高,語(yǔ)法簡(jiǎn)單。如果有ID屬性,使用#id。如果沒(méi)有id屬性,使用其他有的屬性(能代表唯一的屬性),如果屬性都代表不了唯一,使用層級(jí)。如果CSS定位解決不了,使用xpath定位方式。

本博主還整合了以上的演示方法源碼,可供大家參考 ??

八大元素定位方式參考源碼 ??文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-778484.html

自動(dòng)化測(cè)試tag_name,自動(dòng)化測(cè)試,python,chrome,開(kāi)發(fā)語(yǔ)言,自動(dòng)化,測(cè)試工具,Powered by 金山文檔

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

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(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)文章

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

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

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

    2024年02月19日
    瀏覽(26)
  • web自動(dòng)化測(cè)試?yán)碚撝畇elenium八大定位 -(2)

    web自動(dòng)化測(cè)試?yán)碚撝畇elenium八大定位 -(2)

    概念:通過(guò)元素的id屬性來(lái)定位元素。 前置:所要定位的元素必須有id屬性 方法:driver.find_element_by_id(id屬性值) 概念:通過(guò)元素的name屬性來(lái)定位元素。 前置:所要定位的元素必須有name屬性。 方法:driver.find_element_by_name(name屬性值) 特點(diǎn):當(dāng)前頁(yè)面可以重復(fù) 由于name屬性值可以

    2024年02月09日
    瀏覽(30)
  • 自動(dòng)化測(cè)試(二)selenium八大獲取元素方法及對(duì)象操作

    目錄 webdriver API 腳本實(shí)例 元素的定位 1. 通過(guò)id定位: 2. 通過(guò)name方式定位 3. 通過(guò)tag name(標(biāo)簽名)定位 4. 通過(guò)class name (類名)方式定位 5.?通過(guò)CSS 方式定位 6.?通過(guò)xpath方式定位 7.?link text定位 8. Partial link text 定位 操作測(cè)試對(duì)象 ?鼠標(biāo)點(diǎn)擊與鍵盤(pán)輸入 submit 提交表單 text 獲取

    2024年02月03日
    瀏覽(60)
  • IOS自動(dòng)化測(cè)試元素定位

    IOS自動(dòng)化測(cè)試元素定位

    一、元素屬性介紹 ? 1、元素屬性 ? 2、查看各定位方式執(zhí)行效率 二、iOS常用定位方法 ? 1、accessibility_id ? 2、class_name ? 3、Xpath ? 4、ios_class_chain(類型鏈) ? 5、ios_predicate(謂詞) 一個(gè)頁(yè)面最基本組成單元是元素,想要定位一個(gè)元素,我們需要特定的信息來(lái)說(shuō)明這個(gè)元素的唯一特

    2024年01月18日
    瀏覽(74)
  • python ui自動(dòng)化測(cè)試元素定位常用語(yǔ)法

    第一部分是css樣式定位方法 選擇器 示例 示例說(shuō)明 CSS . class .intro 選擇所有class=\\\"intro\\\"的元素 1 # id #firstname 選擇所有id=\\\"firstname\\\"的元素 1 * * 選擇所有元素 2 element p 選擇所有p元素 1 element,element div,p 選擇所有div元素和p元素 1 element ? element div p 選擇div元素內(nèi)的所有p元素 1 element

    2024年02月13日
    瀏覽(33)
  • web自動(dòng)化測(cè)試入門(mén)篇06 —— 元素定位進(jìn)階技巧

    web自動(dòng)化測(cè)試入門(mén)篇06 —— 元素定位進(jìn)階技巧

    ? ?? 作者簡(jiǎn)介:博主是一位測(cè)試管理者,同時(shí)也是一名對(duì)外企業(yè)兼職講師。 ?? 主頁(yè)地址:【Austin_zhai】 ?? 目的與景愿:旨在于能幫助更多的測(cè)試行業(yè)人員提升軟硬技能,分享行業(yè)相關(guān)最新信息。 ?? 聲明:博主日常工作較為繁忙,文章會(huì)不定期更新,各類行業(yè)或職場(chǎng)問(wèn)題

    2024年02月05日
    瀏覽(30)
  • 【selenium自動(dòng)化測(cè)試】如何定位頁(yè)面元素,及對(duì)頁(yè)面元素的操作方法

    【selenium自動(dòng)化測(cè)試】如何定位頁(yè)面元素,及對(duì)頁(yè)面元素的操作方法

    selenium元素定位 ?selenium定位元素的方式有8種。 fild_element(by,value):by表示使用的定位方式,定位方式可以參見(jiàn)By類。value表示值,例如:根據(jù)id定位 By.ID,value=id屬性的值。該方法返回元素對(duì)象,返回值如下: 這個(gè)返回結(jié)果說(shuō)明:返回值為WebElement類的對(duì)象,元素在使用方法時(shí)

    2024年02月10日
    瀏覽(28)
  • web自動(dòng)化測(cè)試(java+seleium)元素定位,全屏截圖

    示例 根據(jù)元素的id屬性來(lái)定位元素 根據(jù)元素的name屬性來(lái)定位元素,但是注意name的屬性值在當(dāng)前文檔中可以不是唯一的 通過(guò)class定位 通過(guò)tag進(jìn)行定位,tag定位比較模糊,多用于標(biāo)題等特殊標(biāo)簽 定位超鏈接文本(文本值) 模糊的link_text定位 能夠?qū)崿F(xiàn)路徑定位(絕對(duì)路徑,相對(duì)路徑

    2024年02月08日
    瀏覽(24)
  • App自動(dòng)化測(cè)試筆記(四):UIAutomatorViewer與元素定位API

    App自動(dòng)化測(cè)試筆記(四):UIAutomatorViewer與元素定位API

    1、應(yīng)用場(chǎng)景 定位元素的時(shí)候必須根據(jù)元素的相關(guān)特征來(lái)進(jìn)行定位,而 UIAutomatorViewer 就是用來(lái)獲取元素特征的。 如何使用UIAutomatorViewer 1、保證想要查看的元素在當(dāng)前的頻幕上 2、打開(kāi)UIAutomatorViewer工具 3、點(diǎn)擊左上角左數(shù)第二個(gè)按鈕 4、點(diǎn)擊想要獲取特征的元素 5、查看工具右

    2024年03月17日
    瀏覽(22)
  • 無(wú)需繁瑣手工操作,如何利用Web自動(dòng)化測(cè)試元素定位做到快速高效的測(cè)試?

    在Web自動(dòng)化測(cè)試中,元素定位是非常重要的環(huán)節(jié)。因?yàn)槲覀冃枰业叫枰M(jìn)行操作的頁(yè)面元素,例如按鈕、輸入框、下拉菜單等等。元素定位可以幫助我們?cè)谧詣?dòng)化測(cè)試中對(duì)這些元素進(jìn)行操作,如點(diǎn)擊、輸入和驗(yàn)證等。 在華為工作了10年的大佬出的Web自動(dòng)化測(cè)試教程,華為現(xiàn)

    2024年02月05日
    瀏覽(448)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包