使用Selenium Edge驱动程序的NoSuchElementException,CEF应用程序中的c#



我正在测试一个已经启动的CEF应用程序,因此我试图使用DebuggerAddress选项连接到它。

  • 浏览器:Microsoft Edge 107.0.1418.24
  • 驱动器:msedgedriver 107.0.1418.24

使用的EdgeOptions:

EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.DebuggerAddress = "localhost:9222";
edgeOptions.AddArguments("window-size=1680x1050");
edgeOptions.AddArguments("no-sandbox");
Driver = new EdgeDriver(edgeOptions);
Driver.Navigate();

MyTest:

public void Test()
{
var item = Driver.FindElement(By.Id("tableItem")); //test fails here
item.Click();
}

错误消息:

Message: 
OpenQA.Selenium.NoSuchElementException : no such element: Unable to locate element: {"method":"css selector","selector":"#tableItem"}
(Session info: MicrosoftEdge=107.0.1418.24)

根据CEF文档,CEF应用程序应该使用Chromedriver进行测试,但当我尝试时,它给了我以下错误:

Message: 
OpenQA.Selenium.WebDriverException : unknown error: cannot connect to chrome at localhost:9222
from unknown error: unrecognized Chrome version: Edg/107.0.1418.24

使用的色度选项:

ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("window-size=1680x1050");
chromeOptions.AddArguments("no-sandbox");
chromeOptions.DebuggerAddress = "localhost:9222";
Driver = new ChromeDriver(chromeOptions);
Driver.Navigate();

Web驱动程序实例即使在测试完成后也可能在内存中挂起。完成后需要调用Driver.Dispose()才能关闭所有web驱动程序进程,并终止msedgedriver.exe进程。然后你可以在相同的主机名和端口上启动ChromeDriver。

ChromeDriver也是如此。完成驱动程序后,您需要调用驱动程序上的Dispose(),以便它正常关闭。如果你在问题中包含了测试的完整代码,我可以更改我的答案,告诉你在哪里调用Dispose()

同时,最好使用两个不同的端口。一个用于Edge,另一个用于Chrome。

相关内容

  • 没有找到相关文章

最新更新