我正在使用TFS 2015触发Selenium自动化测试套件。由于一些HTML元素重叠,很少有测试用例失败,这是由于TFS服务帐户打开的会话的屏幕分辨率较小(以编程方式,我在TFS中运行测试方法时截取了屏幕截图)。从Visual Studio或本地CMD或TFS服务器中的远程桌面会话运行时,所有测试用例都通过了。
我尝试使用波纹管技术提高屏幕分辨率,但是保存在TFS服务器中的屏幕截图仍然显示较小的屏幕尺寸。
driver.Manage().Window.Size = new Size(x, y);
DesiredCapabilities caps = new DesiredCapabilities();
caps.SetCapability("resolution", "1920x1080");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddArgument("--window-size=1300,1000");
driver.manage.window.maximize();
这些方法都不起作用,因为TFS服务帐户打开的会话的屏幕分辨率较小。
当我使用无头选项运行测试用例时,浏览器窗口将以“最大窗口大小”打开,但是测试失败,因为 selenium 无法识别元素(NoSuchElementException):
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("headless");
(我正在自动化的项目是一个ReactJS项目)
我想知道一种通过TFS代理执行测试时增加屏幕尺寸的方法。谢谢你
chromeOptions.addArgument("--headless");
chromeOptions.addArgument("--disable-gpu");
chromeOptions.addArgument("--window-size=1920,1080")
WebDriver driver = new ChromeDriver(chromeOptions);
此后不要使用browser.maximize,它将把Windows的大小重置为系统默认值。
也尝试:
chromeOptions.addArguments("--headless","--disable-gpu","--window-size=1920,1080")
WebDriver driver = new ChromeDriver(chromeOptions);
调试技巧
查看测试是否以相同的窗口大小但非无头模式通过
如果通过,那是因为执行速度更快,无头浏览器要比无头浏览器快,因此你需要为这些元素添加更多的显式等待
我尝试了您提供的解决方案,但测试用例因NoSuchElementException错误而失败。谢谢你 !
@shalinds确定要在任何地方都没有最大化浏览器,也不要将Windows的大小更改为yoiu测试过代码且可以正常工作的系统的大小
是的,我删除了窗口最大化代码。使用无头选项时,我仍然收到NoSuchElementException /无法通过...找到元素。
您要设定的视窗大小
感谢您的答复。我更新了代码,以无头使用显式等待,并且测试用例工作正常