需要對火狐瀏覽器填表操作像IE那樣,查了一些資料我選擇了較為方便的Selenium3.3,,,,但是在除錯環境中需要用到國外代理,,但是這里就有一個小問題,,代理速度無法控制有好有壞。。。
string ua = Static.GetRandomUA();
IWebDriver Driver = FirefoxHelper.GetFirefoxDriver(ua);
if (Driver == null)
{
return ;
}
string url = Static.GetRandomUrl();
Driver.Navigate().GoToUrl(url);
Driver.Manage().Window.Maximize();
使用Selenium加載網址它有一個阻塞,要等火狐完全打開,因為代理原因,,火狐連接一些資源要花很久,頁面元素其實已經加載完了可以操作,,但是非要等加載完成,然后我又設了全域超時最后就拋超時例外了。。單方面設定更大的超時其實也不靠譜,因為我有幾次發現一報超時例外再看網頁左下角的狀態已經加載完成,,不知道是不是有關系
我想問的是可否讓Selenium加載時不要阻塞,我直接判斷元素狀態是否可操作,這樣傻等不是辦法,如果火狐可以配置加載一些資源花了多少時間獲取不到就直接放棄跳過也可以,,,最后是否有根據我的情況更好的操作火狐類別庫的選擇
uj5u.com熱心網友回復:
百度 C#~異步編程?uj5u.com熱心網友回復:
大兄弟我會不知道異步嗎,,,不知道是我說得不清楚,還是你理解錯了,,因為代理慢的問題加載頁面會很久,,如果不加載完selenium是無法定位元素的,,,就算再異步也是要等這么久,,,而我的意思是說可否讓selenium不去監管頁面的加載情況,,,就直接決議元素物件,,由我自己寫代碼去判斷是不是要繼續操作,,或者有什么讓火狐對很長時間的加載直接跳過,,,,不過還是謝謝你的回答uj5u.com熱心網友回復:
看下這個 我剛應該沒理解對你的意思 你應該想問的程式卻掛在某個方法中,直到拋出鏈接遠程服務器超時例外?uj5u.com熱心網友回復:
沒有高手知道嗎uj5u.com熱心網友回復:
IJavaScriptExecutor js = (IJavaScriptExecutor)webDriver;js.ExecuteScript("window.stop();");
這樣可以停止加載頁面,并且不會報錯
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/56893.html
標籤:C#
上一篇:C#值傳遞
