我正在为客户的网站测试数据流。该网站有广告,其加载时间明显长于我想要用Selenium命令测试的每个页面的数据元素。
我无法控制广告,也无法将其静音。我希望在完整页面加载之前通过点击来浏览每个页面。我知道这是可能的,因为我可以手动使用鼠标进行操作。然而,尽管我尝试了很多次,但顽固的chromeDriver仍不会开始自动化,直到整个页面加载完成。
我使用的是C# .Net 4.6.1、chrome32_55.0.2883.75和Selenium版本3.0.1.0。此外,我正在使用推荐的Selenium页面对象模型。我像这样实现了WaitForLoad():
上面的PageRegex可以起作用,但只有在完整页面加载后才能使用。这很令人沮丧,因为我可以看到屏幕上设计要解析的文本字符串。这让我相信在其他地方有一个设置,或者可能当我配置ChromeDriver时,会使我能够在完全加载之前解析Session.Driver.PageSource。
这是我实例化ChromeDriver的方式:
我无法控制广告,也无法将其静音。我希望在完整页面加载之前通过点击来浏览每个页面。我知道这是可能的,因为我可以手动使用鼠标进行操作。然而,尽管我尝试了很多次,但顽固的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可以起作用,但只有在完整页面加载后才能使用。这很令人沮丧,因为我可以看到屏幕上设计要解析的文本字符串。这让我相信在其他地方有一个设置,或者可能当我配置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;