我正在测试一个已经启动的CEF应用程序,所以我正在尝试使用DebuggerAddress选项附加到它。
- 浏览器:Microsoft Edge 107.0.1418.24
- 驱动程序:msedgeddriver107.0.1418.24
使用的边选项:
EdgeOptions edgeOptions = new EdgeOptions();
edgeOptions.DebuggerAddress = "localhost:9222";
edgeOptions.AddArguments("window-size=1680x1050");
edgeOptions.AddArguments("no-sandbox");
Driver = new EdgeDriver(edgeOptions);
Driver.Navigate();
我的测试:
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 documentation,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 chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("window-size=1680x1050");
chromeOptions.AddArguments("no-sandbox");
chromeOptions.DebuggerAddress = "localhost:9222";
Driver = new ChromeDriver(chromeOptions);
Driver.Navigate();
1条答案
按热度按时间tv6aics11#
即使在测试完成后,Web驱动程序示例也可能在内存中挂起。完成后,您需要调用
Driver.Dispose()
以关闭所有Web驱动程序进程,并终止msedgedriver.exe进程。然后,您可以在相同的主机名和端口上启动ChromeDriver。ChromeDriver也是如此。您需要在驱动程序上调用
Dispose()
,这样驱动程序才能正常关闭。如果您在您的问题中包含了测试的完整代码,我可以更改我的答案以向您展示在哪里调用Dispose()
。同时,最好使用两个不同的端口。一个端口用于Edge,另一个端口用于Chrome。