我使用Python和Selenium來測試店面的自定義選項,並注意到隨着時間的推移,測試顯着減慢。在通過選擇組合時測試速度變慢
具體來說,我網頁上有多個<select>
標籤,其中每個標籤都有若干<option>
標籤作爲子標籤。組合Ajax中的每個更改 - 查詢一個新的價格,Selenium通過顯式等待加載動畫第一次出現然後消失,然後在切換到下一個選項之前等待。
由於我有5個不同的選擇字段,每個選項有3-10個選項,整個測試需要一段時間才能運行。然而,早期組合和後期組合之間似乎存在巨大差異 - 而較早的組合通常加載時間不到一秒,最後一組可能會在更改價格之前顯示加載動畫長達20秒。
由於CPU和內存使用量都適中,因此該問題似乎與測試運行的計算機不同。我很好奇隨着時間的推移,可能會導致性能下降的原因 - 如果有人有想法,我會非常感激。提前致謝!
您用硒控制哪個瀏覽器或驅動程序二進制文件?如果實例化驅動程序二進制文件所需的時間少於等待時間,則可能需要考慮編寫腳本以在每次迭代中重新實例化驅動程序二進制文件。可以將Cookie和其他數據傳遞給驅動程序二進制文件的新實例。 – user14218
我使用Chrome Webdriver作爲PhantomJS似乎加劇了這個問題。您能詳細說明重新實例驅動程序的含義嗎?來自實例的相關數據將是登錄會話和選擇的當前狀態 – Peter
基本上寫腳本退出並創建一個新的Chromedriver的每個組合。 driver.quit():driver = webdriver.Chrome('/ path/to/chromedriver')。 – user14218