2017-02-15 5 views
0

javtypeファイルをプルダウンするスクリプトタグを挿入するためにgoogleタグマネージャ経由で呼び出されるapiでunittestを実行しています。例えば、GTMは以下を注入:ファイルでGoogleタグマネージャからJavascriptを実行していないPython Selenium

<script src="http://www.example.com/js/file.js"></script> 

file.js訪問者の情報を処理するために実行し、私たちのAPIに送信するJavaScriptがあります。このプロセス全体はサイト訪問者にとってはうまくいくが、PhantomJSを使ってPython Seleniumで失敗する。ページソースを見ると、データがgtmから正しくプルダウンされ、file.jsのリクエストがサーバーに送信されますが、内部のコードは決して実行されません。誰かが私が間違っていることを指摘できますか? 、ページの末尾にGTM負荷ので

from selenium import webdriver 
driver = webdriver.PhantomJS(service_args=['--ignore-ssl-errors=true']) 
driver.set_window_size(1120, 550) 
driver.get('https://www.example.com') 
print(driver.page_source) 
cookies = {item['name']: item for item in driver.get_cookies()} 
print(cookies) 

それが関連付けられたJavaScriptを実行しないことを潜在的な彼らのようになります。以下は、私のコードからの抽出物ですか?

+0

小さな遅延を追加してページが完全に読み込まれていることを確認しましたか? 'driver.get(...)'の後で、最初の 'print'の前に' time.sleep(2) 'のようなものがあります。 – jinksPadlock

+0

はい、私は10秒の遅延を試みても、同じ問題を受け取りました。 – user2694306

+0

私はそれが訪問者のために働いていると言いましたが、それはセレンの中で別のウェブドライバーで実行されますか?私は通常、コードをステップバイステップでブラウザを使用してjsをデバッグし、すべてがスムーズに実行されたら、ヘッドレスで実行するように切り替えます。 – jinksPadlock

答えて

0

JavaScriptが実行されていますが、PhantomJSでネイティブにサポートされていないIntlライブラリ経由でタイムゾーンを取得しようとしていたため、エラーが発生しました。私はこれが以下のエラーであると判断した:driver.get_log('browser')と出力を調べる。

関連する問題