我使用python selenium自动化网站,但我使用无限循环来执行代码。随着时间的推移,这种情况会发生吗,比如堆栈溢出?
我在python中使用了selenium,并在代码中使用了无限循环。一开始我没有任何问题,但随着时间的推移,我得到了下面的error.what,我应该怎么办?
[13988:1284:0501/110015.734:ERROR:latency_info.cc(164)] Display::DrawAndSwap,
LatencyInfo vector size 102 is too big.以下是代码
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import re
import time
n=1
driver=webdriver.Chrome('F:\pythonjiaoben\chromedriver_win32\chromedriver.exe')
driver.get('this is my web url')
def is_text(a):
try:
elem=driver.find_element_by_link_text(a)
return True
except:
return False
def is_shuaxin():
try:
time.sleep(1)
elem=driver.find_element_by_xpath("/html/body/p")
elem=elem.text
if re.match(r'您点击',elem):
return True
else:
return False
except:
print("我错了")
return False
def is_chakan(sa):
try:
elem=driver.find_element_by_xpath("/html/body/p")
elem=elem.text
if re.findall(r'%s' % sa,elem):
return True
else:
return False
except:
return False
def gongji():
while(n>0):
if is_text("地狱之门[永恒]"):
elem=driver.find_element_by_partial_link_text("地狱之门[永恒]")
elem.click()
time.sleep(1)
continue
if is_text("进入世界"):
elem=driver.find_element_by_partial_link_text("进入世界")
elem.click()
time.sleep(1)
continue
if is_text("加曼迪拉") and is_chakan("横在炽热之路"):
elem=driver.find_element_by_link_text("加曼迪拉")
elem.click()
time.sleep(1)
continue
if is_chakan("目标已经不在了"):
elem=driver.find_element_by_link_text("返回游戏")
elem.click()
time.sleep(1)
continue
if is_chakan("火羽山的三个守护者之一"):
elem=driver.find_element_by_link_text("攻击")
elem.click()
time.sleep(1)
continue
if is_chakan("准备"):
elem=driver.find_element_by_link_text("察看")
elem.click()
time.sleep(1)
continue
if is_chakan("横在炽热之路"):
elem=driver.find_element_by_link_text("察看")
elem.click()
time.sleep(1)
continue
if is_chakan("公墓"):
fuhuo()
if is_shuaxin():
elem=driver.find_element_by_partial_link_text("返回游戏")
elem.click()
time.sleep(1)
continue
else:
fuhuo()
def fuhuo():
while(n>0):
if is_chakan("超生"):
elem=driver.find_element_by_link_text("信徒路(恢复)")
elem.click()
time.sleep(1)
continue
if is_chakan("大理石地面和纯白的廊柱"):
elem=driver.find_element_by_link_text("恢复")
elem.click()
time.sleep(1)
continue
if is_chakan("南广场"):
elem=driver.find_element_by_link_text("广场(传送)")
elem.click()
time.sleep(1)
continue
if is_chakan("牧师把手放在你的伤口上"):
elem=driver.find_element_by_link_text("环顾四周")
elem.click()
time.sleep(1)
elem=driver.find_element_by_link_text("广场(传送)")
elem.click()
time.sleep(1)
continue
if is_chakan("南集市"):
elem=driver.find_element_by_link_text("集市(拍卖)")
elem.click()
time.sleep(1)
if is_chakan("南铁匠铺"):
elem=driver.find_element_by_partial_link_text("铁匠铺(修理)")
elem.click()
time.sleep(1)
continue
if is_chakan("装备凝练"):
elem=driver.find_element_by_partial_link_text("修理")
elem.click()
time.sleep(1)
continue
if is_chakan("修理全部"):
elem=driver.find_element_by_partial_link_text("*修理全部")
elem.click()
time.sleep(1)
break
if is_shuaxin():
elem=driver.find_element_by_partial_link_text("返回游戏")
elem.click()
time.sleep(1)
continue
break
chuansong()
def chuansong():
while(n>0):
if is_chakan("你花费"):
elem=driver.find_element_by_partial_link_text("返回游戏")
elem.click()
time.sleep(1)
continue
if is_chakan("通灵坐骑装备合成"):
elem=driver.find_element_by_link_text("地图")
elem.click()
time.sleep(1)
continue
if is_chakan("完成勇者之心任务"):
elem=driver.find_element_by_link_text("时空转移")
elem.click()
time.sleep(1)
continue
if is_chakan("快速回城"):
elem=driver.find_element_by_link_text("天火岩")
elem.click()
time.sleep(1)
continue
if is_chakan("挂机地图"):
if is_text("开始挂机"):
elem=driver.find_element_by_link_text("开始挂机")
elem.click()
time.sleep(1)
continue
else:
if is_text("返回游戏"):
elem=driver.find_element_by_link_text("返回游戏")
elem.click()
time.sleep(1)
break
if is_chakan("横在炽热之路上"):
elem=driver.find_element_by_link_text("挂机")
elem.click()
time.sleep(1)
continue
if is_shuaxin():
elem=driver.find_element_by_partial_link_text("返回游戏")
elem.click()
time.sleep(1)
continue
break
gongji()好吧,我知道代码写得很差,我还在学习它,所以如果你有更好的方法来修改代码,请在下面指出。非常感谢!
发布于 2018-05-01 10:44:13
如果一切都在python中,堆栈/缓冲区溢出应该不会有任何问题。保持无限循环应该没问题。
但是,最好使用分析工具,或者从头到尾监控进程使用的资源。
https://stackoverflow.com/questions/50110689
复制相似问题