我正在使用 EdgeDriver 在我的浏览器(Edge 38.14393.0.0)上运行自动化测试。我的测试是用 C# 进行的,所以我使用 .NET 驱动程序:
using OpenQA.Selenium.Remote;
using OpenQA.Selenium.Edge;
var options = new EdgeOptions();
options.PageLoadStrategy = EdgePageLoadStrategy.Normal;
RemoteWebDriver driver = return new EdgeDriver(Environment.CurrentDirectory, options, TimeSpan.FromSeconds(60));
driver.SetDocumentSize(new Size(800, 600)); // HERE!
这段代码是我在测试开始时运行的代码。它在最后一行失败:
类初始化方法
抛出异常。Web.TestSuite.UIRendering.RenderingTestSuiteEdge.TestClassInitialize
:System.InvalidOperationException
:窗口大小操作失败 因为该窗口当前不可用。System.InvalidOperationException
使用此堆栈跟踪:
OpenQA.Selenium.Remote.RemoteWebDriver.UnpackAndThrowOnError(Response errorResponse) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs: line 1126
OpenQA.Selenium.Remote.RemoteWebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters) in c:\Projects\webdriver\dotnet\src\webdriver\Remote\RemoteWebDriver.cs: line 920
OpenQA.Selenium.Remote.RemoteWindow.set_Size(Size value) in ...
仅供参考 请注意,我使用各自的驱动程序在 Chrome 和 IE11 上运行其他测试。当我对这些调用
SetDocumentSize
时,我没有收到任何错误。
我可以找到一些与此问题相关的未决问题:
所以,这些是我的问题:
尝试其中之一用于 C#:
driver.Manage().Window.Size = new Size(1920, 1080);
driver.Manage().Window.Maximize();
尽管我因不同原因遇到该错误(如此处的错误 -> https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10319887/)。
现在我在每次测试之前杀死驱动程序和边缘的所有进程,因此希望它能像这样解决:
try
{
foreach (var process in Process.GetProcessesByName("MicrosoftWebDriver"))
{
process.Kill();
}
foreach (var process in Process.GetProcessesByName("MicrosoftEdge"))
{
process.Kill();
}
}
catch (Exception)
{
}
此外,如果您通过 RDP 在远程计算机上运行它们,那么当您关闭 RDP 时,也会出现相同的错误。这是我找到的当前解决方法:
Create a batch file with this code:
for /f "skip=1 tokens=3" %%s in ('query user %USERNAME%') do (
%windir%\System32\tscon.exe %%s /dest:console
)
Create a desktop shortcut to this file. To do this, right-click the batch
file and select Send to | Desktop (create shortcut).
In the shortcut properties, click Advanced and select Run as administrator.
现在,当您需要从远程桌面断开连接时,请双击远程计算机上的此快捷方式(在远程桌面窗口中)。
这对我有用:
driver.manage().window().setSize(new Dimension(1250, 720));
您可以设置 Microsoft Edge 的窗口大小,如下所示。 *
-window-size
和 window-size
也有效:
EdgeOptions options = new EdgeOptions();
options.AddArguments("--window-size=1024,768");
EdgeDriver driver = new EdgeDriver(options);
并且,您还可以根据thd doc:
使用以下代码设置Microsoft Edge的窗口大小EdgeDriver driver = new EdgeDriver();
driver.Manage().Window.Size = new Size(1024, 768);
*我的回答解释了更多。