當(dāng)我們想讓 Selenium 自動(dòng)地操作瀏覽器時(shí),就必須告訴 Selenium 如何去定位某個(gè)元素或一組元素,每個(gè)元素都有著不同的標(biāo)簽名和屬性值,Selenium 提供了以下8種定位元素的方式,每種方式對(duì)應(yīng)了2個(gè)方法:
find_element_by_( ),是用來(lái)定位單個(gè)元素的,find_elements_by_( ),是用來(lái)定位多個(gè)元素的。
通過(guò) id 定位
通過(guò) name 定位
通過(guò) class 定位
通過(guò) tag 定位
通過(guò) link 定位
通過(guò) partial link 定位
通過(guò) xpath 定位
通過(guò) css 選擇器定位
下面以百度首頁(yè)為例進(jìn)行舉例說(shuō)明:
1.通過(guò) id 定位find_element_by_id(id)
find_elements_by_id(id)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # 定位id為“kw”的元素 input_text = driver.find_element_by_id("kw") input_text.send_keys("selenium") driver.quit()2.通過(guò)通過(guò) name 定位
find_element_by_name(name)
find_elements_by_name(name)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # 定位name為“wd”的元素 input_text = driver.find_element_by_name("wd") input_text.send_keys("selenium") driver.quit()3.通過(guò) class 定位
find_element_by_class_name(name)
find_elements_by_class_name(name)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # 定位class名稱(chēng)為“s_ipt”的元素 input_text = driver.find_element_by_class_name("s_ipt") input_text.send_keys("selenium") driver.quit()4.通過(guò) tag 定位
find_element_by_tag_name(name)
find_elements_by_tag_name(name)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # 定位標(biāo)簽為的元素 input_text = driver.find_elements_by_tag_name("input") print(len(input_text)) driver.quit()5.通過(guò) link 定位
find_element_by_link_text(link_text)
find_elements_by_link_text(link_text)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # 定位鏈接文本完全匹配“我新聞”的元素 news = driver.find_element_by_link_text("新聞") news.click() driver.quit()6.通過(guò) partial link 定位
find_element_by_partial_link_text(link_text)
find_elements_by_partial_link_text(link_text)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # 定位鏈接文本部分匹配“新”的元素 news = driver.find_element_by_partial_link_text("新") news.click() driver.quit()7.通過(guò) xpath 定位
find_element_by_xpath(xpath)
find_elements_by_xpath(xpath)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # xpath定位,相對(duì)路徑與屬性結(jié)合定位搜索框 news = driver.find_element_by_xpath("http://input[@id="kw"]") news.click() driver.quit()8.通過(guò) css 選擇器定位
find_element_by_css_selector(css_selector)
find_elements_by_css_selector(css_selector)
# _*_ coding:utf-8 _*_ from selenium import webdriver driver = webdriver.Chrome() driver.maximize_window() driver.get("https://www.baidu.com/") # css選擇器,id定位密碼輸入框 news = driver.find_element_by_css_selector("#kw") news.click() driver.quit()
這里只是簡(jiǎn)單介紹了8種元素定位方式的使用,比較簡(jiǎn)單易用的是通過(guò)id、name、class定位,我個(gè)人比較喜歡的是用xpath定位,當(dāng)然,最靈活也是最強(qiáng)大的定位方式就是css,它也是比較難掌握的一種方式。關(guān)于xpath和css定位方式的詳細(xì)介紹,可以參考
selenium 元素定位。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/43257.html
摘要:注意如果上述腳本無(wú)法正常啟動(dòng)瀏覽器,需要先檢查與瀏覽器的版本是否一致然后再檢查瀏覽器對(duì)應(yīng)的文件是否放在的安裝目錄下,如系統(tǒng)的默認(rèn)安裝路徑,,如果沒(méi)有請(qǐng)將該文件放在此目錄下,然后再次運(yùn)行腳本。 第一個(gè)自動(dòng)化測(cè)試腳本 腳本如下所示: # _*_ coding:utf-8 _*_ from selenium import webdriver from selenium.webdriver....
摘要:前面一節(jié)主要介紹了類(lèi),這一節(jié)則主要介紹類(lèi)。提供了一些功能屬性和方法來(lái)實(shí)現(xiàn)與網(wǎng)頁(yè)元素的交互,這些元素主要包括文本框文本域按鈕單選框多選框表格等等。 前面一節(jié)主要介紹了 WebDriver 類(lèi),這一節(jié)則主要介紹 WebElement 類(lèi)。WebElement 提供了一些功能、屬性和方法來(lái)實(shí)現(xiàn)與網(wǎng)頁(yè)元素的交互,這些元素主要包括文本框、文本域、按鈕、單選框、多選框、表格等等。 WebEleme...
摘要:和是中兩個(gè)非常重要的類(lèi),使用它們提供的方法可以實(shí)現(xiàn)與瀏覽器和頁(yè)面元素的各種交互操作。該方法在每個(gè)只需要調(diào)用一次等待時(shí)間單位為秒設(shè)置一個(gè)頁(yè)面完全加載完成的超時(shí)等待時(shí)間等待時(shí)間單位為秒設(shè)置腳本執(zhí)行的超時(shí)時(shí)間,應(yīng)該在拋出錯(cuò)誤之前等待時(shí)間單位為秒 WebDriver 和 WebElement 是 Selenium 中兩個(gè)非常重要的類(lèi),使用它們提供的方法可以實(shí)現(xiàn)與瀏覽器和頁(yè)面元素的各種交互操作。...
摘要:華文宋體驗(yàn)證搜索結(jié)果頁(yè)面的標(biāo)題是否是自動(dòng)化測(cè)試百度搜索。華文宋體移除了華文宋體版本的華文宋體也就是說(shuō),華文宋體不再得到官方的支持。一、自動(dòng)化測(cè)試概念1、概念java:TestNgpython:unittest pytest2、自動(dòng)化測(cè)試可行性測(cè)試目的明確,需求不會(huì)頻繁的變更對(duì)于項(xiàng)目的自動(dòng)化測(cè)試,要看項(xiàng)目的具體情況一個(gè)產(chǎn)品需要在多個(gè)環(huán)境下部署對(duì)于web GUI測(cè)試,需要測(cè)試用例在不同的瀏覽器上...
摘要:最近一直在學(xué)習(xí)自動(dòng)化測(cè)試相關(guān)的內(nèi)容,于是決定將整個(gè)學(xué)習(xí)過(guò)程記錄在這里,一方面可以作為筆記方便自己以后隨時(shí)隨地地查看,另一方面也希望分享出來(lái)能夠和大家一起學(xué)習(xí)討論進(jìn)步。 最近一直在學(xué)習(xí)UI自動(dòng)化測(cè)試相關(guān)的內(nèi)容,于是決定將整個(gè)學(xué)習(xí)過(guò)程記錄在這里,一方面可以作為筆記方便自己以后隨時(shí)隨地地查看,另一方面也希望分享出來(lái)能夠和大家一起學(xué)習(xí)討論進(jìn)步。 需要準(zhǔn)備的環(huán)境 Python 2 Seleni...
閱讀 3065·2023-04-26 00:23
閱讀 3480·2021-09-13 10:28
閱讀 2260·2021-08-31 14:18
閱讀 2969·2019-08-30 15:54
閱讀 2015·2019-08-30 15:43
閱讀 1383·2019-08-29 16:56
閱讀 2868·2019-08-29 14:16
閱讀 2127·2019-08-28 17:51