您的位置:軟件測試 > 開源軟件測試 > 開源功能測試工具 > Selenium
Selenium之百度搜索,結(jié)果列表翻頁查詢
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2015/1/16 14:51:37 ] 推薦標(biāo)簽:Selenium 功能測試工具 單元測試

  實(shí)例:百度搜索,結(jié)果列表翻頁查詢
  解決問題:解決selenium driver獲取web頁面元素時,元素過期問題
  思路1:獲取所有“頁面翻頁鏈接”元素,然后遍歷元素并點(diǎn)擊
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
if __name__ == "__main__":
driver = webdriver.Firefox()
driver.maximize_window()
driver.get('http://www.baidu.com')
driver.implicitly_wait(5)
driver.find_element_by_id('kw1').send_keys('selenium')
driver.find_element_by_id('su1').click()
page = driver.find_element_by_id('page')
pages = page.find_elements_by_tag_name('a')  #查找所有翻頁跳轉(zhuǎn)鏈接
#設(shè)置滾動條位置為底部
js = 'document.documentElement.scrollTop=10000'
for each in pages:
driver.execute_script(js)   #拖動滾動條到底部
each.click()
driver.execute_script(js)
time.sleep(3)
driver.quit()
  結(jié)果:點(diǎn)擊第3頁時,程序出錯
  selenium.common.exceptions.StaleElementReferenceException: Message: u'Element not found in the cache - perhaps the page has changed since it was looked up' ; Stacktrace:
  即在cache中找不到元素,可能是在元素被找到之后頁面變換了。 這說明,當(dāng)前頁面發(fā)生跳轉(zhuǎn)之后,存在cache中的與這個頁面相關(guān)的元素也被清空了
  思路2:基于思路1的錯誤結(jié)果分析>先獲取每個頁面數(shù),然后每次點(diǎn)擊某個頁面,跳轉(zhuǎn)后重新獲取下一個頁面翻頁鏈接,然后點(diǎn)擊,循環(huán)。。
# -*- coding: utf-8 -*-
from selenium import webdriver
import time
if __name__ == "__main__":
driver = webdriver.Firefox()
driver.maximize_window()
driver.get('http://www.baidu.com')
driver.implicitly_wait(5)
driver.find_element_by_id('kw1').send_keys('selenium')
driver.find_element_by_id('su1').click()
page = driver.find_element_by_id('page')
pages = page.find_elements_by_tag_name('a')
js = 'document.documentElement.scrollTop=10000'
total = len(pages)
has_pre_page = False
page_num = 0
for i in range(total):
driver.execute_script(js)
pn=10
page_num = page_num + 1 #設(shè)置頁面號
one_page = driver.find_element_by_css_selector('p[id="page"]>a:nth-of-type('+str(page_num)+')')
one_page.click()

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd