私は店頭のカスタマイズオプションをテストするためにPythonとSeleniumを使用しており、時間の経過とともにテストが大幅に遅くなることに気づきました。選択組み合わせを実行中にテストが遅くなる
具体的には、ページには<select>
の数のタグがあり、それぞれのタグの子は<option>
です。 Ajaxの各変更は、Seleniumが最初に表示されるアニメーションのロードを明示的に待ってから待機し、次のオプションに変更する前に消える新しい価格を照会します。
3つのオプションがそれぞれ5つの選択フィールドがあるので、全体のテストには時間がかかります。しかし、以前の組み合わせは通常1秒未満でロードされますが、最後のものは価格を変更する前に最大20秒間ロードアニメーションを表示できますが、以前の組み合わせと後のものでは大きな違いがあるようです。
この問題は、CPUとメモリの両方の使用が中程度であるため、テストが実行されているマシンには表示されません。私は非常に不思議なことに、このパフォーマンスの低下を時間の経過と共に引き起こしている可能性があります。誰かがアイディアを持っていれば非常に感謝しています。前もって感謝します!
セレンで制御しているブラウザまたはドライバのバイナリはどれですか? waitよりもバイナリのバイナリをインスタンス化する時間が短い場合は、各バイナリのバイナリドライババイナリを再作成するスクリプトを作成することを検討することをお勧めします。 Cookieおよびその他のデータは、ドライババイナリの新しいインスタンスに渡すことができます。 – user14218
PhantomJSが問題を悪化させたように見えるため、Chrome Webdriverを使用しています。あなたはドライバを再インスタンス化することで何を意味するのか詳しく説明できますか?インスタンスからの関連データはログインセッションとなり、選択の現在の状態になります – Peter
基本的に終了するスクリプトを作成し、各組み合わせに新しいChromedriverを作成します。 driver.quit():driver = webdriver.Chrome( '/ path/to/chromedriver')。 – user14218