我正在測試客戶端網站的數據流。它的廣告花費的時間比我想用Selenium命令測試的每個頁面的數據元素要長得多。Selenium ChromeDriver C#如何在加載之前導航頁面?
我無法控制廣告,也無法使其無聲無息。
我想在完整頁面加載之前點擊瀏覽每個頁面。我知道這是可能的,因爲我可以使用鼠標手動完成。然而,儘管我嘗試過,頑固的chromeDriver在整個頁面加載之前都不會開始自動化。
我使用的是C#.Net 4.6.1,chrome32_55.0.2883.75和Selenium版本3.0.1.0。
此外,我使用推薦的Selenium頁面對象模型。我實現WaitForLoad()這樣的:
public override void WaitForLoad()
{
_isLoaded = Wait.Until(d =>
{
lock (d)
{
SwitchToSelf();
return PageRegex.IsMatch(Session.Driver.PageSource);
}
});
}
的PageRegex上述工作,但整個頁面加載之後。這令人沮喪,因爲我可以直觀地看到PageRegex旨在解析的文本字符串在屏幕上。這導致我相信其他地方有一個設置,也許在我配置ChromeDriver的時候,這會讓我在完全加載之前解析Session.Driver.PageSource。
這是怎麼了實例化的ChromeDriver:
var options = new ChromeOptions();
options.AddArguments("test-type");
options.AddArgument("incognito"); // works
options.AddArgument("--disable-bundled-ppapi-flash"); // works! this turns off shockwave
options.AddArgument("--disable-extensions"); // works
options.AddArguments("--start-fullscreen");
string workFolder = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) +
"\\SHARED";
options.BinaryLocation = workFolder + @"\Chrome32\chrome32_55.0.2883.75\chrome.exe";
var driver = new ChromeDriver(options);
driver.Manage().Cookies.DeleteAllCookies();
return driver;
這第二個選項非常完美 – sapbucket