1
基于 selenium 的 UI 自动化实践
 作者:虫无涯
- 2023-02-24  陕西
- 本文字数:1150 字 - 阅读完需:约 4 分钟 
1、需求说明
实现的需求是:获取某个博主博客的文章标题,然后把获取的标题内容保存到 excel 中
2、实现目的
适用于刚开始学习 seleniumUI 自动化的人,建立对 UI 自动化的基本认知
3、特殊说明
后续代码只是来获取博主文章的标题,并无其它风险,所以不存在安全问题
4、环境搭建
详细参考:WebUI自动化环境搭建
5、实现思路
# -*- coding:utf-8 -*-from selenium import webdriverfrom selenium.webdriver.common.keys import Keysimport timeimport reimport 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").textprint(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.xlsxworksheet = 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 = 1col = 0try:    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、实现效果
 
 划线
评论
复制
发布于: 刚刚阅读数: 4
版权声明: 本文为 InfoQ 作者【虫无涯】的原创文章。
原文链接:【http://xie.infoq.cn/article/befe5381e20517c814040a3c1】。文章转载请联系作者。


虫无涯
关注
专注测试领域各种技术研究、分享和交流~ 2019-12-11 加入
CSDN测试领域优质创作者 | CSDN博客专家 | 阿里云专家博主 | 华为云享专家 | 51CTO专家博主










 
    
评论