我所有的Selenium测试只有在通过Cruisecontrol运行时才会失败。net,而使用同一个用户(cc.net在其上运行)通过命令行运行它似乎没问题。
在cc上运行。net还导致了超过30~40个chromedriver进程的开放,最终导致“无法发现打开的页面”。在命令行上运行很好,只有一个chromedriver进程。
到目前为止,我已经尝试:--no-沙盒选项,电源设置更改该用户,更新ChromeDrive到最新版本
任何帮助都是高度赞赏的......
我在MSTest
和Microsoft测试代理
中遇到了完全相同的问题,下面是我如何解决这个问题的解决方案。但是,我不知道CruiseControl,所以我不知道是否可以安装它作为进程运行。
基本上,测试代理是作为服务安装的,从Windows(NT)服务启动的每个进程都在会话0上运行,对登录用户不可见。
Chrome正试图离开会话0,你可以在这里找到更多的参考(下面链接中的注释21,但实际上整个线程是一个很好的阅读关于这个主题):https://bugs.chromium.org/p/chromium/issues/detail?id=615396#c21
现在,要解决这个问题,有几个选项可供选择:从Chrome下载金丝雀版本,但不建议这样做,因为这只是一个临时修复。Chrome开发者表示,在不久的将来,Chrome(和ChromeDriver)将不再提供0。
最好的解决方案是将MS测试代理安装为一个进程,以便登录的用户可以看到所有应用程序。更多详细信息可以在这里找到:https://msdn.microsoft.com/en-us/library/ee291332.aspx
另一个选择是将下面的设置添加为Chrome参数,但是我没有使用测试代理作为Windows服务进行测试,所以我不知道它是否工作,但我可以确认它作为一个进程与测试代理一起工作。
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("test-type");
chromeOptions.AddArguments("--disable-extensions");
chromeOptions.AddArguments("no-sandbox");
var driver = new ChromeDriver(chromeOptions);
至于ChromeDriver
open的多个实例,同样的问题是MSTest,所以可能NUnit
不同,但我的问题是TestInitialize
方法的测试失败。发生这种情况时,TestCleanup
不再被调用。似乎只有当TestMethod
失败并拥有我的驱动程序时,
I中的code>语句结束时,由于打开的TestCleanup
才会执行。退出()
TestCleanupChromeDriver
实例的数量,测试服务器上的内存耗尽。
我在过去通过CCNet运行一些任务时遇到过问题,这些任务通常需要在MS窗口的上下文中创建窗口
。
这意味着任何试图创建一个新(可见)窗口的进程或子进程都可能出现错误行为。控制台窗口似乎很好,因为它们共享一个公共实例(可能?)。从经验和测试来看,这是微软windows的一个“问题”,没有局限于CCNet。
我在selenium中遇到过这种情况,因为它通常驱动一个浏览器(浏览器本身试图显示一个窗口)。我在CCNet中成功地使用了通过selenium驱动的PhantomJs
(作为有限服务运行时)
如果windows服务设置为以系统运行
,则您可以允许该服务“与桌面交互”。这允许服务在服务帐户下创建新窗口。然而,根据我的经验,这只有在连接了用户会话时才起作用*;从会话断开连接会返回到非工作行为。
*
此时windows会提示用户连接到系统
服务窗口站,以查看交互式内容(windows)。它可能只在windows server上受支持,我想我只有在通过远程桌面连接到服务器时才看到它。
除了通过PSEXEC
将流程调用到服务器/会话上(其行为符合预期且一致),我找不到解决这个问题的优雅解决方案。
我得到一个Chrome驱动程序相关的错误时运行我的Selenium测试。错误消息是“无法发现打开的页面”。硒测试一直到昨天晚上都正常。问题似乎是在前一天重新启动服务器后开始的。我无法在本地框上复制此错误。在服务器上从命令行运行Selenium测试确实会打开Chrome浏览器,但会导致相同的错误。有什么想法吗? 无法发现OpenQa.Selenium.Remote.RemoteWebDriver.U
问题内容: 运行Selenium测试时出现与Chrome驱动程序相关的错误。错误消息是“ 无法发现打开的页面。 ”直到昨天晚上,Selenium测试都运行良好。前一天重新启动服务器后,问题似乎开始出现。我无法在本地机器上重现此错误。从服务器上的命令行运行Selenium测试确实会打开Chrome浏览器,但会导致相同的错误。有任何想法吗? 失败的行: 错误消息和堆栈跟踪: 无法在OpenQA.Sel
问题内容: 我正在尝试运行一个ruby文件,该文件将使用seleniumwebdriver启动chrome驱动程序。我有selenium独立服务器2.35.0。和chromedriver可执行文件已安装。我正在通过运行服务器来启动 两个会话正在启动,chrome驱动程序无法启动。 这是在我使用以下文件运行文件之后 我对此并不陌生,无法找出问题所在。而且,我也试图让它无头运行,所以我正在运行Xvfb
我试图运行一个ruby文件,这将启动chrome驱动程序使用selenium WebDriver。我有selenium独立服务器2.35.0。和chromedriver可执行文件安装。我通过运行来启动服务器, 这是在我使用 我对此很陌生,不知道哪里出了问题。我也试图无头运行它,所以我有Xvfb运行。有人能帮我指出我犯的错误并启动chromedriver吗? 更新: 谁能帮我弄清楚出了什么问题吗?
我正在学习SeleniumWebDriver,在成功使用firefox之后,现在我想尝试启动Chrome。所以我设置了它的驱动程序 但是当代码流到达驱动程序时。get()指令我收到此异常: 并显示此页面: “只允许本地连接”是什么意思?如何修复?
当我试图在eclipse中使用带有Java的selenium驱动程序调用chrome浏览器时,我得到了一个错误。