2017-10-03 6 views
1

this SO questionから借用以下の溶液のいずれかとドライバを殺す場合:PhantomJSとPython:新しいエラーを開き、現在のドライバを殺す

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を返され、取り残されているように見えたん。私の目はまた、(勝利10を使って)タスクマネージャーによってそれを確認しました。 私が遭遇する問題は、新しいドライバをインスタンス化しようとするときです。私は通常のようにそれを起動し、ウィンドウが開きます:

driver = webdriver.PhantomJS 
driver() 

しかし、すぐに、私はそうのようにコマンドを渡すしようとして:シェル返します

driver.set_window_size(1200, 1080) 

このエラーを:

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

私は複数のコマンドを試しました。時には "intインスタンスを持っています"、時には "strインスタンスを取得"しました。誰でも私が間違っていることを知っている?私はどちらかの同時ドライバーを実行するか(プロキシーなしで1つ、別のランチャーにすることができます)、または元のものを強制終了して作業用のオリジナルを開くかのいずれかを探しています。同じ条件で同じエラーを返すクロムドライバでマルチランニングを試しました。

答えて

1

要素の初期化後にa()が欠けていました。これで7時間の生活を無駄にしてしまった場合、ドライバーを初期化する適切な方法はdriver = webdriver.PhantomJS()です。

+1

#iunderstandyourpain – Tom

関連する問題