【发布时间】:2018-01-30 14:38:36
【问题描述】:
我正在尝试使用 Selenium 和 ChromeDriver 尽快获取页面的完整 DOM。当我的重要 Ajax 请求完成后,我将一个类注入 dom 并使用 WebDriverWait 等待该类,然后再继续。
当我测试来自 api(ajax 调用)的响应时,它们非常一致,我还删除了对广告服务器或网站和 api 之外的任何请求。我检查了来自服务器日志和wireshark 的请求,它们非常一致。
ChromeDriver 获取完整 dom 所需的时间差异很大。以下是我正在使用的参数和开关。我从 700 毫秒到 4 秒得到任何东西来获得同一页面的完整 dom。我在这里使用的是否有阻碍 ChromeDriver 的开关?如果我只想要 DOM,我应该使用什么,没有别的?如何优化速度?
使用 Selenium.WebDriver.3.5.0 和 Chrome 60。
chromeOptions.AddArguments("headless", "disable-gpu", "renderer");
chromeOptions.AddArgument("disable-translate");
chromeOptions.AddArgument("no-default-browser-check");
chromeOptions.AddArgument("site-per-process");
chromeOptions.AddArgument("disable-3d-apis");
chromeOptions.AddArgument("disable-background-mode");
chromeOptions.AddArgument("site-per-process");
chromeOptions.AddUserProfilePreference("profile.managed_default_content_settings.images", 2);
chromeOptions.AddUserProfilePreference("credentials_enable_service", false);
谢谢
【问题讨论】:
-
您是否禁用了图像和 CSS 加载?
-
我禁用了图片,如何禁用 css 加载?我只是在寻找一个开关,正要发表评论!
-
我阻止了在为 Web 应用程序提供服务的服务器上加载 CSS,因此它现在没有返回到 Chrome。它有点帮助。老实说,我仍然认为我的命令行开关无处不在
-
你会考虑用Java回答吗?
-
是的,我没有反对 Java。
标签: c# google-chrome selenium selenium-chromedriver chromium