关于虫师的pdf中python+selenium的多进程执行测试用例失败的问题 100
在学习python+selenium的过程中,以前没有用到多进程,随着测试用例的不断增大,所以想使用多进程来解决,虫师写的selenium2python自动化测试实战作为...
在学习python+selenium的过程中,以前没有用到多进程,随着测试用例的不断增大,所以想使用多进程来解决,虫师写的selenium2 python 自动化测试实战作为经典吧,发现第八章第三节的多进程执行测试用例执行不了,总是各种报错,不知道有没有人能解决一下,或者如果懂得话,给个解决办法,谢谢
展开
2个回答
展开全部
#之前用过如下代码爬过豆瓣用户,效率还可以
#好像叫gevent协称模块来着,你可以试试。
#!/usr/bin/env python
#coding: utf-8
from selenium import webdriver
from selenium.webdriver.phantomjs.service import Service as PhantomJSService
from gevent import monkey
from BeautifulSoup import BeautifulSoup
monkey.patch_all()
import gevent
import sys
import time
def doJob(urls,name):
service_args = [
]
browser = webdriver.PhantomJS(executable_path=r'D:\TestProject\phantomjs\bin\phantomjs.exe',service_args=service_args)
wr = open('done/'+name+'.txt','w')
for url in urls:
browser.get(url)
time.sleep(1)
soup = BeautifulSoup(browser.page_source.encode('utf-8'))
findNames = soup.findAll('div',attrs={'class':'name'})
if findNames is None:
print url
for sub in findNames:
n = sub.a.string.encode('utf8') if sub.a.string is not None else ''
pl = sub.span.string.encode('utf8') if sub.span.string is not None else ''
wr.write(n+','+pl)
wr.write('\n')
wr.close()
browser.quit()
files = {'culture':[],'travel':[],'ent':[],'fashion':[],'life':[],'tech':[]}
for key_fn in files:
with open(key_fn + '.link','r') as f:
files[key_fn] = f.read().split('\n')
gevent.joinall([
gevent.spawn(doJob,files['culture'],'culture'),
gevent.spawn(doJob,files['travel'],'travel'),
gevent.spawn(doJob,files['ent'],'ent'),
gevent.spawn(doJob,files['fashion'],'fashion'),
gevent.spawn(doJob,files['life'],'life'),
gevent.spawn(doJob,files['tech'],'tech'),
])
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
兄弟 你解决了这个问题了没
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询