Selenium WebDriver執行緒安全問題

2021-09-10 17:38:39 字數 372 閱讀 9250

專案中使用webdriver進行服務端渲染,解決seo的問題。但是最近上線的**多了之後,發現googlebot爬蟲同時爬幾個**的的時候,會有串資料的問題。

上網搜了一下發現是webdriver不執行緒安全的:

專案**中將webdriver宣告成了類成員變數,所以會有執行緒安全問題。

於是將webdriver宣告成了方法的區域性變數,解決了執行緒安全問題,但是每次呼叫該方法都會在伺服器上開啟乙個webdriver的程序,伺服器記憶體很快耗盡。

發現頁面渲染**中先呼叫webdriver的close()方法,然後再呼叫quit()方法,quit()方法不起作用,webdriver程序無法被正確關閉。經過幾次嘗試,把close方法去掉,直接呼叫quit方法,就能正確關閉程序。

解決TestNG多執行緒併發時,執行緒不安全問題

testng的強大功能之一就是支援多執行緒併發測試,但前提是需要我們的程式是執行緒安全的,否則實際測試過程中就會出錯。例如當我們初始化兩個driver時,如果不保證執行緒安全,則兩個driver在執行時會相互干擾甚至死掉。未進行執行緒安全優化之前的 用selenium 3,firefox瀏覽器驅動需...

struts1 x的Action執行緒安全問題

最近在幾個專案發現了struts 1.x的乙個安全性問題是值得注意的。以前一直沒有在意。因為過去的模式是前台頁面資料通過actionform傳入,action中的excute方法接收,這個問題是不存在的。但是,如果在action 中直接定義例項變數,問題就很大了。原因其實也很簡單 為了確保執行緒安全...

網路程式設計 執行緒 6 互斥鎖解決執行緒中資料安全問題

前沿 上一節說到多個執行緒之間共享全域性變數會存在乙個問題 資源爭搶,資料混亂不安全。這一節就是如何解決共享全域性變數時資料不安全的問用到的知識點 互斥鎖,threading模組中有個lock類,可以建立乙個鎖物件,呼叫acquire方法 給執行緒上鎖 和release方法 給執行緒釋放鎖 這樣就可...