UI自動化實例:遍歷點擊帶有滾動條的列表每一項

需求:驗證列表每條資訊裏的用戶數是否正確。該列表分頁請求數據,每頁10條,每次滾動到底部自動增量請求10條。css

實現自動化必要性:web

  1 資訊天天不定時更新需常常性驗證, 程序更新或者環境切換需驗證全部資訊數據瀏覽器

  2 每條資訊手工驗證需點擊7次,並手工覈對數據【一次全量驗證,100條資訊需點擊700次】測試

 

程序步驟:url

1 打開頁面spa

2 定義計數器count=0;code

3 點擊每一個條目,驗證須要驗證的數據orm

  點擊第count個條目【需將待點擊條目滾動顯示到頁面再點擊;滾動後有可能會加載數據,從新獲取下總條目數】;blog

  驗證該條目內部數據邏輯;索引

  返回列表頁;計數器+1;下一個循環..

4 關閉瀏覽器

 

#coding:utf-8
""" 覈對全部資訊的用戶數是否正確 """ url = 'http://testurl' # 測試地址


from selenium import webdriver import time driver = webdriver.Chrome() driver.implicitly_wait(2) driver.get(url) # 打開資訊頁面
 count = 0 #資訊計數器

while(1): time.sleep(0.5) js = 'var ele = document.getElementsByClassName("van-cell__title");ele[{0}].scrollIntoView()'.format(count) # 將待點擊資訊滾動顯示到頁面
 driver.execute_script(js) news_list = driver.find_elements_by_css_selector(".rqread-info-list li.rqread-item .van-cell") # 頁面帶有分頁請求,滾動後從新獲取下資訊數目

    try: ele = news_list[count] except IndexError as e: #count超出索引說明已遍歷全部,退出循環
        print('test finish') break title = ele.text ele.click() # 點擊資訊打開詳情頁
    time.sleep(0.5) # xpath = "//div[@class='rqread-info-list']//li[{0}]".format(count+1) # 也能夠用xpath取元素
    # driver.find_element_by_xpath(xpath).click()
    print('總計{0}條資訊,當前測試第{1}條'.format(len(news_list), count + 1)) js = 'var ele = document.getElementsByClassName("ot-taglist");ele[0].scrollIntoView();' driver.execute_script(js) # 滾動到詳情頁最底部驗證數據

    for i in [1,2]: css = ".ot-taglist>span:nth-child({0})".format(i) user_num_ele = driver.find_element_by_css_selector(css) # 用戶數按鈕
        num = user_num_ele.text user_num_ele.click() # 點擊按鈕打開用戶列表頁
        time.sleep(0.5) user_num = len(driver.find_elements_by_class_name("sr-item-box")) # 取列表用戶數
        if  num[4:-1]!= str(user_num): print('資訊【{0}】不一致。資訊詳情頁:{1},客戶列表個數:{2}'.format(title,num[4:-1],user_num)) driver.back() # 返回資訊詳情頁
    driver.back() # 返回資訊列表頁
    count += 1 driver.close() # 關閉瀏覽器

 

 

存在bug,測試結果:

 

修復後,測試結果

相關文章
相關標籤/搜索