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を実行しないことを潜在的な彼らのようになります。以下は、私のコードからの抽出物ですか?
小さな遅延を追加してページが完全に読み込まれていることを確認しましたか? 'driver.get(...)'の後で、最初の 'print'の前に' time.sleep(2) 'のようなものがあります。 – jinksPadlock
はい、私は10秒の遅延を試みても、同じ問題を受け取りました。 – user2694306
私はそれが訪問者のために働いていると言いましたが、それはセレンの中で別のウェブドライバーで実行されますか?私は通常、コードをステップバイステップでブラウザを使用してjsをデバッグし、すべてがスムーズに実行されたら、ヘッドレスで実行するように切り替えます。 – jinksPadlock