使用Selenium ChromeDriver获取页面DOM,计算速度

问题描述 投票:0回答:1

我正在尝试使用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);

谢谢

c# google-chrome selenium selenium-chromedriver chromium
1个回答
0
投票

我的用例是使用chrome webdriver生成一个完整的dom发送给爬虫。它是prerender.io的替代品。

我见过其他一些开发者也想尝试这个。

我的建议是不要这样做。它不是为它而设计的,根据我的经验,你无法做任何事情来使响应更可靠。

如果你使用角度,使用通用(https://universal.angular.io/),我们测试了它,它的效果很好。

对于其他JS框架,https://prerender.io仍然是一个选项。

谢谢。

© www.soinside.com 2019 - 2024. All rights reserved.