Centos サーバーPhantomJS
内から実行しようとしています。selenium.webdriver
PhantomJS はパスにあり、ターミナルから適切に実行されています。ただし、スクリプトでは起動されているように見えますが、その後、指定されたポートに到達できません (プロバイダー 29842 と 60099 から 2 つの異なる開いたポートを試しましたが、どちらも機能せず、指定されたポートなしでは起動しません)。
エラーはここで発生しますselenium.webdriver.common.utils
:
try:
socket_ = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socket_.settimeout(1)
socket_.connect(("localhost", port))
socket_.close()
return True
except socket.error:
return False
これは私のスクリプトからのものです(実行可能ファイルへの完全なパスを書き込むだけでなく、パラメーターなしで試しましたが、どちらも機能しませんでした):
self.browser = webdriver.PhantomJS(
port=29842,
desired_capabilities={
'javascriptEnabled': True,
'platform': 'windows',
'browserName': 'Mozilla',
'version': '5.0',
'phantomjs.page.settings.userAgent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.57 Safari/537.36"
}
)
そして、これは から webdriver を初期化するスクリプトですselenium.webdriver.phantomjs.service
。確認してsubprocess.Popen
実際にphantomjsを起動すると、whileループでエラーが発生します:
try:
self.process = subprocess.Popen(self.service_args,
stdout=self._log, stderr=self._log)
except Exception as e:
raise WebDriverException("Unable to start phantomjs with ghostdriver.", e)
count = 0
while not utils.is_connectable(self.port):
print utils.is_connectable(self.port)
count += 1
time.sleep(1)
if count == 30:
raise WebDriverException("Can not connect to GhostDriver")
すべてのパッケージは最新バージョンです: python 2.7、selenium 2、および Ghostdriver が統合された phantomjs 1.9 バイナリ。サーバーで行ったのとまったく同じことを実行して、同じスクリプトを Ubuntu ローカル マシンで適切に動作させました。サーバー上での違いは何ですか?