前言
前面的幾篇都是講如何定位一個元素,有時候一個頁面上有多個對象需要操作,如果一個個去定位的話,比較繁瑣,這時候就可以定位一組對象。
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版本)