本地正常运行的Selenium测试在Azure Pipeline中元素定位失败求助
Selenium测试在Azure构建管道中元素定位失败问题
我的Selenium测试用例在本地Visual Studio中可正常运行,但提交代码至Azure构建管道后,首个元素就无法被定位,抛出NoSuchElementException异常。
项目NuGet包及依赖配置
<PropertyGroup> <TargetFramework>netcoreapp3.1</TargetFramework> <IsPackable>false</IsPackable> <PublishChromeDriver>True</PublishChromeDriver> </PropertyGroup> <ItemGroup> <PackageReference Include="DotNetSeleniumExtras.PageObjects" Version="3.11.0" /> <PackageReference Include="DotNetSeleniumExtras.PageObjects.Core" Version="4.3.0" /> <PackageReference Include="DotNetSeleniumExtras.WaitHelpers" Version="3.11.0" /> <PackageReference Include="ExtentReports" Version="4.1.0" /> <PackageReference Include="ExtentReports.Core" Version="1.0.3" /> <PackageReference Include="Microsoft.AspNetCore.Mvc.Core" Version="2.2.5" /> <PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.9.4" /> <PackageReference Include="Microsoft.Office.Interop.Excel" Version="15.0.4795.1001" /> <PackageReference Include="NUnit" Version="3.13.3" /> <PackageReference Include="NUnit.ConsoleRunner" Version="3.15.2" /> <PackageReference Include="NUnit3TestAdapter" Version="4.2.1" /> <PackageReference Include="Selenium.Support" Version="4.3.0" /> <PackageReference Include="Selenium.WebDriver" Version="4.3.0" /> <PackageReference Include="Selenium.WebDriver.ChromeDriver" Version="108.0.5359.7100" /> <PackageReference Include="Selenium.WebDriver.MSEdgeDriver" Version="107.0.1418.42" /> </ItemGroup>
ChromeDriver错误片段
<UnitTestResult executionId="00ad0f0d-8aea-41d7-8981-13961152aed9" testId="76a081c3-ed49-d739-5a18-7669ad294fce" testName="CreateSustainingProjectAndApproveGateDecision("Engineering Services")" computerName="compName" duration="00:00:20.4944700" startTime="2022-12-27T01:28:02.1595758-06:00" endTime="2022-12-27T01:28:22.6539741-06:00" testType="13cdc9d9-ddb5-4fa4-a97d-d965ccfc6d4b" outcome="Failed" testListId="8c84fa94-04c1-424b-9868-57a2d4851a1d" relativeResultsDirectory="00ad0f0d-8aea-41d7-8981-13961152aed9"> <Output> <ErrorInfo> <Message>OpenQA.Selenium.NoSuchElementException : no such element: Unable to locate element: {"method":"xpath","selector":"//button[contains(@id,'create')]"}
 (Session info: chrome=108.0.5359.125)
 TearDown : System.NullReferenceException : Object reference not set to an instance of an object.</Message> <StackTrace> at OpenQA.Selenium.WebDriver.UnpackAndThrowOnError(Response errorResponse)
 at OpenQA.Selenium.WebDriver.Execute(String driverCommandToExecute, Dictionary`2 parameters)
 at OpenQA.Selenium.WebDriver.FindElement(String mechanism, String value)
 at OpenQA.Selenium.By.<.ctor>b__11_0(ISearchContext context)
 at OpenQA.Selenium.By.FindElement(ISearchContext context)
 at OpenQA.Selenium.WebDriver.FindElement(By by)
 at PC.SeleniumUI.Tests.Start_Browser() in E:\AdosBuilds\ADOS-Agent1\1\s\UnitTests.cs:line 56
--TearDown
 </StackTrace> </ErrorInfo> </Output> </UnitTestResult>
已尝试的解决方案(均无效)
- 设置25秒延迟,使用await delay替代Thread.sleep
- 添加ChromeOptions配置:
var options = new ChromeOptions(); options.AddArguments("--headless"); //无头模式 options.AddArguments("--window-size=800,600");//隐形浏览器窗口大小为800x600 options.AddArguments("start-maximized"); // 最大化打开浏览器 options.AddArguments("disable-infobars"); // 禁用信息栏 options.AddArguments("--disable-extensions"); // 禁用扩展 options.AddArguments("--disable-gpu"); // 仅适用于Windows系统 options.AddArguments("--disable-dev-shm-usage"); // 解决资源限制问题 options.AddArguments("--no-sandbox"); options.AddArguments("--disable-blink-features='BlockCredentialedSubresources'"); options.AddArguments("--whitelisted-ips='10.5.243.86'");
- 传递认证参数
- 使用CssSelector替代Xpath
恳请有Azure服务器上同类问题排查经验的开发者提供技术指导。
内容的提问来源于stack exchange,提问作者user5320606
相关产品推荐
相关产品推荐

