【发布时间】:2017-06-06 15:26:48
【问题描述】:
升级firefox 和selenium 后,我遇到了一些代码问题
我对@987654324@不是很有经验
代码
import sys
import time
import getopt
import urllib
import selenium
from pyvirtualdisplay import Display
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
class Scrape:
display = None
driver = None
def __init__(self):
# Start display
self.display = Display(visible=0, size=(800, 600))
self.display.start()
# Init args
query = ''
try:
opts, args = getopt.getopt(sys.argv[1:], '', ['query=','proxy='])
for opt, arg in opts:
if opt == '--query':
query = arg
except getopt.GetoptError as err:
self.error(str(err))
# Init driver
try:
self.driver = webdriver.Firefox()
self.driver.wait = WebDriverWait(self.driver, 5)
except selenium.common.exceptions.WebDriverException as err:
self.error(str(err))
print('teeeesting...!')
def error(self, str):
self.close()
print>>sys.stderr, str
sys.exit(1)
def close(self):
self.driver.quit()
self.display.stop()
if __name__ == '__main__':
Scrape()
错误
# python selenium_scrape.py --query "test"
Traceback (most recent call last):
File "selenium_scrape.py", line 48, in <module>
Scrape()
File "selenium_scrape.py", line 34, in __init__
self.error(str(err))
File "selenium_scrape.py", line 38, in error
self.close()
File "selenium_scrape.py", line 44, in close
self.driver.quit()
AttributeError: 'NoneType' object has no attribute 'quit'
【问题讨论】:
-
请阅读并遵循帮助文档中的发布指南。 Minimal, complete, verifiable example 适用于此。在您发布 MCVE 代码并准确描述问题之前,我们无法有效地帮助您。例如,重现问题真的是否依赖于那些
import语句的所有? -
建议:
print>>sys.stderr, strbeforeself.close(),这样就可以看到诊断信息了。