乐趣区

关于软件测试:基于selenium的UI自动化实践

@TOC

1、需要阐明

实现的需要是:获取某个博主博客的文章题目,而后把获取的题目内容保留到 excel 中

2、实现目标

实用于刚开始学习 seleniumUI 自动化的人,建设对 UI 自动化的根本认知

3、非凡阐明

后续代码只是来获取博主文章的题目,并无其它危险,所以不存在平安问题

4、环境搭建

具体参考:WebUI 自动化环境搭建

5、实现思路

# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import re
import xlsxwriter

driver = webdriver.Chrome()  # 关上 Chrome 浏览器
driver.get("https://blog.csdn.net/xxxxxx")  # 进入博客首页, 这里是 csdn 博客,xxxxx 是博主昵称

time.sleep(1)
driver.maximize_window() # 最大化窗口

# 获取博客总页数
listNum = driver.find_element_by_id("pageBox").text
print(listNum)
number = re.sub("\D", "", listNum)
number1 = list(number)
print(number)
print(number1)
number2 = [int(i) for i in number1]
print(number2)
max_number = max(number2)
print(max_number)

# 获取博客题目
time.sleep(2)
mylist = []
workbook = xlsxwriter.Workbook('./data.xlsx') # 获取的题目保留到当前目录的 data.xlsx
worksheet = workbook.add_worksheet()
bold_format = workbook.add_format({'bold': True}) # 加粗

# excel 表格表头设计,保留六页数据
worksheet.write('A1', u'第一页', bold_format)
worksheet.write('B1', u'第二页', bold_format)
worksheet.write('C1', u'第三页', bold_format)
worksheet.write('D1', u'第四页', bold_format)
worksheet.write('E1', u'第五页', bold_format)
worksheet.write('F1', u'第六页', bold_format)
row = 1
col = 0
try:
    for j in range(1, max_number):
        time.sleep(2)
        print("============ 第 %d 页数据 ==========" % j)
        for i in range(1, 41):
            mylist1 = driver.find_element_by_xpath(".//*[@id='mainBox']/main/div[2]/div["+str(i)+"]/h4/a").text #
            # 获取博客题目名称
            print(mylist1)
            worksheet.write_string(row + i, col + j - 1, str(mylist1))
        time.sleep(2)
        target = driver.find_element_by_xpath("html/body/div[6]/main/div[2]/div[41]/div/ul/li[9]") # 找到“下一页”元素
        driver.execute_script("arguments[0].scrollIntoView();", target) # 拖动滚动条到指定的元素地位
        time.sleep(1)
        target.click() # 下一页数据
    driver.quit() # 敞开浏览器
    workbook.close()
except Exception as e:
    print("出错了, 起因为:", e)
    driver.quit()  # 敞开浏览器
    workbook.close()

6、实现成果

退出移动版