Selenium2+python自動化11-定位一組元素find_elements


前言    

前面的幾篇都是講如何定位一個元素,有時候一個頁面上有多個對象需要操作,如果一個個去定位的話,比較繁瑣,這時候就可以定位一組對象。

webdriver 提供了定位一組元素的方法,跟前面八種定位方式其實一樣,只是前面是單數,這里是復數形式:find_elements

本篇拿百度搜索作為案例,從搜索結果中隨機選擇一條搜索結果,然后點擊查看。

一、定位搜索結果

    1.在百度搜索框輸入關鍵字“測試部落”后,用firebug查看頁面元素,可以看到這些搜索結果有共同的屬性。

    2.從搜索的結果可以看到,他們的父元素一樣:<h3 class="t">

    3.標簽都一樣,且target屬性也一樣:<a target="_blank" 

    4.於是這里可以用css定位(當然用xpath也是可以的)


二、確認定位結果

    1.前面的定位策略只是一種猜想,並不一定真正獲取到自己想要的對象的,也行會定位到一些不想要的對象。

    2.於是可以獲取對象的屬性,來驗證下是不是定位准確了。這里可以獲取href屬性,打印出url地址

三、隨機函數

    1.搜索結果有10條,從這10條中隨機取一個就ok了

    2.先導入隨機函數:import random

    3.設置隨機值范圍為0~9:a=random.randint(0~9)

四、隨機打開url

    1.從返回結果中隨機取一個url地址

    2.通過get方法打卡url

    3.其實這種方式是接口測試了,不屬於UI自動化,這里只是開闊下思維,不建議用這種方法

五、通過click點擊打開

    1.前面那種方法,是直接訪問url地址,算是接口測試的范疇了,真正模擬用戶點擊行為,得用click的方法

# coding:utf-8

from selenium import webdriver

import random

driver = webdriver.Firefox()

driver.get("https://www.baidu.com")

driver.implicitly_wait(10)

driver.find_element_by_id("kw").send_keys(u"測試部落")

driver.find_element_by_id("kw").submit()

s = driver.find_elements_by_css_selector("h3.t>a")

# 設置隨機值

t = random.randint(0, 9)

# 隨機取一個結果點擊鼠標

s[t].click()

 

不知道有小伙伴有沒注意一個細節,前面在搜索框輸入關鍵字后,我並沒有去點擊搜索按鈕,而是用的submit的方法,submit相當於回車鍵。

具體的操作對象方法,下篇詳細介紹。本篇主要學會定位一組對象,然后隨機操作其中的一個。

在學習過程中有遇到疑問的,可以加selenium(python+java) QQ群交流:646645429

 

《selenium+python高級教程》已出書:selenium webdriver基於Python源碼案例

(購買此書送對應PDF版本)

 

 


免責聲明!

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



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