本篇文章為大家展示了怎么在Python2中使用Selenium定位元素,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
Python主要應(yīng)用于:1、Web開發(fā);2、數(shù)據(jù)科學(xué)研究;3、網(wǎng)絡(luò)爬蟲;4、嵌入式應(yīng)用開發(fā);5、游戲開發(fā);6、桌面應(yīng)用開發(fā)。
1.通過 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.通過通過 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.通過 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名稱為“s_ipt”的元素 input_text = driver.find_element_by_class_name("s_ipt") input_text.send_keys("selenium") driver.quit()
4.通過 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/") # 定位標簽為<input>的元素 input_text = driver.find_elements_by_tag_name("input") print(len(input_text)) driver.quit()
5.通過 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.通過 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.通過 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定位,相對路徑與屬性結(jié)合定位搜索框 news = driver.find_element_by_xpath("//input[@id='kw']") news.click() driver.quit()
8.通過 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()
通用的終極定位語法
上面的所有元素定位 find_element_by_xxx和find_elements_by_xxx調(diào)用的結(jié)果,實際上都是在調(diào)用以下兩種方法,我們也可以直接調(diào)用一下兩種方法即可。
find_element(self, by=By.ID, value=None):
find_elements(self, by=By.ID, value=None):
class By(object): """ Set of supported locator strategies. """ ID = "id" XPATH = "xpath" LINK_TEXT = "link text" PARTIAL_LINK_TEXT = "partial link text" NAME = "name" TAG_NAME = "tag name" CLASS_NAME = "class name" CSS_SELECTOR = "css selector"
例如:
from selenium.webdriver.common.by import By # 根據(jù)id,定位id為“world”的元素 world = driver.find_element(By.ID,"world") print(world.text) # xpath定位,相對路徑與屬性結(jié)合 定位密碼輸入框 password = driver.find_element(By.XPATH,"//input[@name='password']") print(password.get_attribute("value")) # css選擇器,標簽+屬性 定位用戶名輸入框 username = driver.find_element(By.CSS_SELECTOR,"input[name='username']") print(username.get_attribute("value"))
上述內(nèi)容就是怎么在Python2中使用Selenium定位元素,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁題目:怎么在Python2中使用Selenium定位元素-創(chuàng)新互聯(lián)
文章源于:http://sd-ha.com/article12/dghcgc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、靜態(tài)網(wǎng)站、標簽優(yōu)化、企業(yè)建站、小程序開發(fā)、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容