1. 程式人生 > >Python+Selenium練習篇之31-獲取頁面元素的href屬性

Python+Selenium練習篇之31-獲取頁面元素的href屬性

本文來介紹如何通過Selenium獲取頁面元素的某一個屬性。一個元素可能有多個屬性,例如 class, id, name, text, href, vale等等。這裡我們舉例一個爬蟲中經常需要處理的連結問題:找出當前頁面所有的超連結。

已百度首頁為例,列印所有包含href的元素的連結。

相關指令碼程式碼如下:

# coding=utf-8
import time
from selenium import webdriver


driver = webdriver.Chrome()
driver.maximize_window()
driver.implicitly_wait(6)
driver.get("https://www.baidu.com")
time.sleep(1)

for link in driver.find_elements_by_xpath("//*[@href]"):
    print (link.get_attribute('href'))
driver.quit()

這裡只是找元素的href屬性,如果你需要其它屬性,例如你需要檢視頁面所有元素具有id值的話,你可以這樣寫 
print (link.get_attribute('id'))

相關推薦

Python+Selenium練習31-獲取頁面元素href屬性

本文來介紹如何通過Selenium獲取頁面元素的某一個屬性。一個元素可能有多個屬性,例如 class, id, name, text, href, vale等等。這裡我們舉例一個爬蟲中經常需要處理的連

Python+Selenium練習22-獲取頁面元素大小

本文介紹如何通過Selenium方法去獲取頁面元素的大小。這個場景是可能在需要測試的,例如在前端測試過程中,需要去測試某一個控制元件是否和設計大小保持一致。 這裡用百度首頁的“百度一下”這個按鈕舉例,

Python+Selenium練習27-多視窗之間切換

本文來介紹如何處理driver在多視窗之間切換,想一下這樣的場景,在頁面A點選一個連線,會觸發在新Tab或者新視窗開啟頁面B,由於之前的driver例項物件在頁面A,但是你接下來的指令碼是操作頁面B的元素,這樣就造成了找不到元素的報錯。本來介紹selenium中switch_to.window(

Python+Selenium練習4-利用link text定位元素

本文介紹如何通過link text 來定位頁面元素,我們開啟網頁,一些可以點選的連結跳轉上面的文字,就是link text,用百度首頁舉例來看:   在上面圖中,這一排上面的文字都是link text,例如我們要通過“新聞”這個文字欄位來定義這個跳轉連結元素。   指令碼如下:

Python+Selenium練習2-利用ID定位元素

在前面一篇文章,我們介紹瞭如何摘取頁面欄位,通過正則進行匹配符合要求的欄位。如果感覺有點困難,不能立馬理解,沒有關係。把字串摘取放到第一篇,是因為自動化測試指令碼,經常要利用字串操作,字串切割,查詢,匹配等手段,得到新的字串或字串陣列,然後根據新得到的字串進行判斷用例是否通過。   &n

Python+Selenium練習1-摘取網頁上全部郵箱

前面已經介紹了Python+Selenium基礎篇,通過前面幾篇文章的介紹和練習,Selenium+Python的webUI自動化測試算是入門了。接下來,我計劃寫第二個系列:練習篇,通過一些練習,瞭解和掌握一些Selenium常用的介面或者方法。      

Python+Selenium練習5-利用partial link text定位元素

本文介紹如何通過partial link text來定位頁面元素。看到這個,有點和前一篇文字link text有點類似。字面意思,確實和link text相類似,partial link text就是選擇這個元素的link text中一部分欄位。      

Python+Selenium練習6-利用class name定位元素

有時候,我們在用firepath(不會的請點這裡)檢視元素的XPath資訊,發現沒有可以用來定位的id資訊,這個時候我們就需要考慮用其他的可用的來定位元素。本文介紹如何通過元素節點中class name的值來定位頁面元素。還是以百度首頁,搜尋輸入框定位舉例: XPath截圖   相關指令碼程式

Python+Selenium練習3-利用tag name定位元素

前一篇文章介紹瞭如何通過元素的id值來定位web元素,本文介紹如何通過tag name來定位元素。個人認為,通過tag name來定位還是有很大缺陷,定位不夠精確。主要是tag name有很多重複的,造成了選擇tag name來定位頁面元素不準確,所以使用這個方法定位web元素的機會很少。  &n

Python+Selenium練習9-清除文字方法

       在前面的基礎篇的最後一篇(點這裡),我們用到了輸入字元和點選按鈕這樣的操作。用send_keys()來輸入字串到文字輸入框這樣的頁面元素,用click()來點選頁面上支援點選的元素。有時

Python+Selenium練習28-處理iframe切換

本文介紹如何利用Selenium中方法,在不同iframe中切換。 問題:有時候我們發現元素定位沒問題,在測試回放的過程,發現就是找不到元素報錯。 由於沒有找到合適的iframe網站,這裡不好用程式碼

Python+Selenium練習11-瀏覽器上前進和後退操作

本文來介紹上如何,利用webdriver中的方法來演示瀏覽器中位址列旁邊的前進和後退功能。 相關指令碼程式碼如下: # coding=utf-8 import time from selenium i

Python+Selenium練習16-點選單選按鈕-Radio Button

本文介紹如何利用selenium中的方法去操作單選按鈕(Radio Button)。 利用百度新聞頁面兩個單選按鈕舉例 預設是選擇新聞全文,我試試在兩者之前來回點選。 實際上,勾選一個單選按鈕,也

Python+Selenium練習8-利用css定位元素

       前面介紹了,XPath, id , class , link text, partial link text, tag name, name 七大元素定位方法,本文介紹webdriver

Python+Selenium練習17-點選複選框-Checkbox

本文介紹Selenium中,如何操作複選 框-Checkbox,最終的方法還是click()。 本來想還是繼續採用for語句來把所有的複選框勾選一遍,例如這樣的場景:註冊一個網站勾選身份或者職業的時候

Python+Selenium練習21-驗證控制元件是否被選中

前面文章我們瞭解瞭如何獲取元素的text屬性值,和判斷元素是否顯示在頁面(is_displayed()方法),本文我們來學習下,判斷一個控制元件是否被選中狀態。 還是以百度新聞舉例: 由於這個"新聞

Python+Selenium練習26-執行JavaScript

前面文章介紹了ActionChains下的滑鼠懸停和右鍵操作,其實ActionChains還有其他方法,你可以 action = ActionChains,通過這,先初始化一個ActionChains

Python+Selenium練習1-處理Alert彈窗整理

在自動化測試過程中,經常會遇到彈出警告框的情況,如圖所示:在 WebDriver 中處理 JavaScript 所生成的 alert、confirm 以及 prompt 是很簡單的。1.警告訊息框(alert)  警告訊息框提供了一個"確定"按鈕讓使用者關閉該訊息框,並且該訊息框是模式對話方塊,也就是說使用者

Python+Selenium練習25-滑鼠右鍵

本文介紹如何使用Selenium中右鍵方法來操作網頁元素。網頁上有些元素是支援右鍵來觸發新的選單,這裡找一個百度首頁,百度logo的右鍵,檢視圖片動作來模擬這個場景。 問題拆分: 1. 開啟百度首頁,

Python+Selenium練習3-瀏覽器滾動條操作

ps:scroll函式用法--scrollHeight 獲取物件的滾動高度。--scrollLeft 設定或獲取位於物件左邊界和視窗中目前可見內容的最左端之間的距離。--scrollTop 設定或獲取位於物件最頂端和視窗中可見內容的最頂端之間的距離。--scrollWidth 獲取物件的滾動寬度方法二:fro