【Python + Selenium斷言】之如何獲取定位Web頁面列表中的數據


如下圖所示:

當定位元素時,我想獲取指定的某一列的某一行的斷言,如圖我只想獲取jiancha1的值,有同學會說:直接定位不就好了。但是我們知道,列表的數據會時刻變動的,不能靠定死的路徑,那該怎么辦呢?

我們可以在定位元素上下文章,首先,通過F12定位元素XPATH路徑:

# 姓名:zc監察1
get_name_loc = (By.XPATH,"//div[@class='bs-example']/form/table/tbody/tr[1]/td[2]")

# 姓名:jiancha1
get_name_loc = (By.XPATH,"//div[@class='bs-example']/form/table/tbody/tr[2]/td[2]")

對比一下,只有tr行不一樣,所以如果想獲取列表中某一列的所有數據,寫下面的代碼:

# 獲取所有姓名
get_name_loc = (By.XPATH,"//div[@class='bs-example']/form/table/tbody/tr/td[2]")

然后通過循環得到列表數據:    

get_name_loc = (By.XPATH,"//div[@class='bs-example']/form/table/tbody/tr/td[2]")

    def getListName(self,realname):
        '''
        獲取列表真實姓名
        :param realname:    真實姓名
        :return:            getRealname
        '''
        # 查詢最新輸入的姓名
        sleep(0.5)
        getRealname = functions.AllFuncions().getNewName(realname)[2]
     ============重點=============
# 定位姓名元素 names = self.find_elements(*self.get_name_loc) lists = [] for i in names: lists.append(i.text)      ============重點============= # 對比數據庫數據與列表數據 if getRealname in lists: return getRealname else: return None

這樣就大功告成啦!獲取數據庫中想要的字段值跟列表中的數據進行對比,如果存在則把這個值進行斷言。

 

感謝參考文章:《python3+selenium獲取列表某一列的值


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM