PhantomJS和Python:杀死当前驱动程序打开新的错误

时间:2017-10-03 02:09:41

标签: python selenium phantomjs

使用从this SO question借来的以下任何解决方案来杀死驱动程序时:

driver.close()

或:

driver.quit()

或两者一起:

driver.close()
driver.quit()

或者这个:

import signal

driver.service.process.send_signal(signal.SIGTERM) # kill the specific phantomjs child proc
driver.quit() 

它工作,窗口关闭,我检查过程,似乎没有留下任何东西,

"phantomjs" in (p.name() for p in psutil.process_iter())

返回False,希望这足够可靠,知道进程已经死了。我的眼睛也通过任务管理器验证了它(使用win 10)。 我遇到的问题是当我尝试实例化一个新的驱动程序时。我像平常一样启动它并打开窗口:

driver = webdriver.PhantomJS
driver()

但是一旦我尝试传递这样的命令:

driver.set_window_size(1200, 1080) 

shell返回此错误:

TypeError: unbound method set_window_size() must be called with WebDriver instance as first argument (got int instance instead)

我尝试了多个命令,有时它是“得到int实例”,有时“得到str实例”。任何人都知道我做错了什么?我想要同时运行同步驱动程序(一个没有代理,可以是不同的发射器),或者杀死原始并打开一个工作原件。还尝试使用chrome驱动程序进行多运行,在相同条件下返回相同的错误。

1 个答案:

答案 0 :(得分:1)

元素初始化后缺少a()。如果你已经浪费了7个小时的生命,我希望你现在感到有些宽慰,因为你知道初始化驱动程序的正确方法是driver = webdriver.PhantomJS()。