首页 > 解决方案 > Angularjs 应用程序无法在 chromedriver 75 及更高版本启动的 chrome 76 上正确加载 UI

问题描述

通过 selenium 使用 chromedriver 在 chrome 上打开 Angularjs 应用程序。尝试单击它不断上下移动的按钮,这使得无法单击,并且当应用程序在屏幕上弹跳时,selenium 无法单击。但是,尝试使用手动启动的 chrome 浏览器复制相同的内容从未发生过。通过 chrome 驱动程序打开浏览器并手动启动 angularjs 应用程序 UI 不断弹跳。这意味着该问题仅发生在由 chrome 驱动程序启动的浏览器中。

尝试使用较旧的 chromedriver 和 chrome,这不会发生。仅在 chromedriver 的更高版本(即 76 及更高版本)中发生。Angularjs 版本 1.7.2 本地 chrome 可以正常工作。

我使用以下代码启动chrome的基本方法,仍然没有运气

var driver = new ChromeDriver();

由于 chrome 浏览器仅在通过 chromedriver 启动时表现不同,因此启动本地 chrome 也没有问题。我尝试启动 chrome,因为它会手动启动。

var options = new ChromeOptions() { AcceptInsecureCertificates = true };
            options.AddArguments($"user-data-dir=/Users/{Environment.UserName}/AppData/Local/Google/Chrome/User Data");
            var driver = new ChromeDriver(options);

在本地机器上运行时,使用本地配置文件用户数据的方法在一定程度上确实有帮助,但在远程机器上运行时,它再次失败,并且您无法启动两个浏览器,因为用户数据文件夹由一个浏览器使用有一次,只有一个 chrome 浏览器而不是多线程是不可行的。

最新的 chromedriver 版本 76 是 w3c 投诉,因此使用较新的版本比使用旧的 chromedriver 更好。

关于为什么只有 chromedriver 启动的 chrome 才会发生这种情况的任何建议或见解。将不胜感激,并且仅在角度应用时才会发生。

标签: angularjsseleniumselenium-chromedriver

解决方案


推荐阅读