c#-EdgeDriver-无法更改Edge中的窗口大小
作者:互联网
我正在使用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!
错误
这段代码是我在测试开始时运行的代码.它在最后一行失败,并带有:
Class Initialization method
Web.TestSuite.UIRendering.RenderingTestSuiteEdge.TestClassInitialize
threw exception.System.InvalidOperationException
:
System.InvalidOperationException
: A window size operation failed
because the window is not currently available.
使用此堆栈跟踪:
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时,没有任何错误.
开放式问题
我可以找到一些与此问题相关的未解决问题:
> https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/9340417/
> https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8778306/
问题
所以,这些是我的问题:
>是否有人成功在Edge中设置窗口大小?
>这个问题是我遇到的已知问题吗?如果是这样,是否固定?所引用的问题(看起来相似)仍处于打开状态,并且未提供状态.
>有什么解决方法吗?
解决方法:
尝试其中一种用于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.
现在,当您需要断开与远程桌面的连接时,请在远程计算机上(在“远程桌面”窗口中)双击此快捷方式.
标签:microsoft-edge,selenium-webdriver,webdriver,c,selenium-edgedriver 来源: https://codeday.me/bug/20191111/2023190.html