多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

python + selenium + PhantomJS 获取腾讯应用宝APP评论

更新时间:2022-04-07 09:50:11 作者:多测师 浏览:216

  PhantomJS

  PhantomJS是一个基于WebKit的服务器端JavaScriptAPI,它无需浏览器的支持即可实现对Web的支持,且原生支持各种Web标准,如DOM处理、JavaScript、CSS选择器、JSON、Canvas和可缩放矢量图形SVG。PhantomJS主要是通过JavaScript和CoffeeScript控制WebKit的CSS选择器、可缩放矢量图形SVG和HTTP网络等各个模块。PhantomJS主要支持Windows、MacOS、Linux三个平台,并且提供了对应的二进制安装包。

python + selenium + PhantomJS 获取腾讯应用宝APP评论

  PhantomJS的使用场景如下:

  无需浏览器的Web测试:无需浏览器的情况下进行快速的Web测试,且支持很多测试框架,如YUITest、Jasmine、WebDriver、Capybara、QUnit、Mocha等。

  页面自动化操作:使用标准的DOMAPI或一些JavaScript框架(如jQuery)访问和操作Web页面。

  屏幕捕获:以编程方式抓起CSS、SVG和Canvas等页面内容,即可实现网络爬虫应用。构建服务端Web图形应用,如截图服务、矢量光栅图应用。

  网络监控:自动进行网络性能监控、跟踪页面加载情况以及将相关监控的信息以标准的HAR格式导出。

  PhantomJS已形成了一个功能非常强大的生态圈内容,相关项目如下:

  CasperJS:一个开源的导航脚本处理和高级测试工具

  Poltergeist:测试工具Capybara的测试驱动

  Guard::Jasmine:能够基于Rails实现自动化测试Jasmine的Specs

  GhostDriver:远程WebDriver有线协议的开源实现

  PhantomRobot:PhantomJS机器人测试框架

  Mocha-PhantomJS:JavaScript测试框架Mocha的客户端

  此外,生态圈还包括基于PhantomJS实现了众多截屏工具,如capturejs、pageres、phantomjs-screenshots、manet、screenshot-app等;以及Node.js、Django、PHP、Sinatra等语言的截图API和Confess、GhostStory、Grover等众多工具。

  下载地址:

  http://phantomjs.org/download.html

  代码样例:

  1#/usr/bin/envpython

  2#-*-coding:utf-8-*-

  3

  4fromseleniumimportwebdriver

  5importtime

  6importxlsxwriter

  7importjson

  8

  9defmain(url):

  10

  11driver=webdriver.PhantomJS()

  12driver.get(url)

  13time.sleep(5)

  14

  15withopen("./tencent_yyb.json","wb")aswrite_obj:

  16try:

  17#numstr=driver.find_elements_by_xpath('//*[@id="J_CommentCount"]')[0].text

  18#num=int(numstr[1:4])

  19flag=True

  20whileflag:#循环,无法点击“查看更多评论”报错,重置标志位flag完成获取所有内容

  21try:

  22driver.find_element_by_id("J_DetCommentShowMoreBtn").click()#点击“查看更多评论”

  23#driver.implicitly_wait(10)

  24time.sleep(1)

  25exceptExceptionaserr:

  26printerr

  27flag=False

  28

  29data=driver.find_elements_by_xpath('//*[@id="J_DetDataContainer"]/div/div[8]/ul/li')

  30

  31repeat={}#缓存数据

  32foritemindata:

  33val_list=item.text.split('\n')

  34iflen(val_list)==3:

  35ptime=val_list[1].encode("utf-8")

  36pcontent=val_list[2].encode("utf-8")

  37ifptimenotinrepeat.keys():#去重

  38repeat[ptime]=pcontent

  39write_obj.write("{\"发布时间\":\""+ptime+"\",\"发布内容\":\""+pcontent+"\"}\n")

  40else:

  41ptime=val_list[1].encode("utf-8")

  42pcontent=''

  43ifptimenotinrepeat.keys():

  44repeat[ptime]=pcontent

  45write_obj.write("{\"发布时间\":\""+ptime+"\",\"发布内容\":\""+pcontent+"\"}\n")

  46exceptExceptionaserr:

  47printerr

  48finally:

  49driver.quit()

  50

  51defget_num(name):

  52jfilename="./"+name+".json"

  53count=len(open(jfilename,"rU").readlines())-1

  54returncount

  55

  56#xls转换写入

  57defw_xls(url,name):

  58perfix=time.strftime('%Y%m%d')

  59xfilename="./"+name+'_'+perfix+".xlsx"

  60jfilename="./"+name+".json"

  61workbook=xlsxwriter.Workbook(xfilename)

  62worksheet1=workbook.add_worksheet()

  63lines=int(get_num(name))

  64worksheet1.set_column=('A:C',lines+1)

  65worksheet1.write('A1','URL')

  66worksheet1.write('B1',u'发布时间')

  67worksheet1.write('C1',u'发布内容')

  68

  69row=1

  70withopen(jfilename,"r")asobj_read:

  71forlineinobj_read.readlines():

  72data=json.loads(line)

  73worksheet1.write(row,0,url)

  74worksheet1.write(row,1,data[u'发布时间'])

  75worksheet1.write(row,2,data[u'发布内容'])

  76row+=1

  77

  78

  79if__name__=='__main__':

  80

  81url=''

  82

  83main(url)

  84time.sleep(3)

  85w_xls(url,"tencent_yyb")

  以上内容为大家介绍了自动化测试中的python + selenium + PhantomJS 获取腾讯应用宝APP评论,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部