在尝试通过 Jenkins 执行以下批处理命令以使用 PowerShell 脚本修改 XML 时,
powershell.exe "C:\jenkins\workspace\TemplateJob\Scripts\Common\Prerequsites\Powershell\PowershellScripts\ModifyXML.ps1" "C:\jenkins\workspace\TemplateJob\Scripts\TestNgXML\RegressionTests\Regression.xml" "%Target_Browser%"
我收到以下错误:
无法将值“System.Object[]”转换为类型“System.Xml.XmlDocument”。错误:“无法连接到远程服务器”
但同样的命令通过 Jenkins 在 Windows 8 中运行良好,如果从代理作为 Web Start Slave-agent.jnlp
(
启用“允许服务与桌面交互”后也存在问题。
请找到以下示例: ModifyXML.ps1,它将使用 XPath 使用参数值更新给定 XML 中的参数值。
Regression.xml
:
<suite><parameter name="browser" value="ie" /></suite>
ModifyXML.ps1
:
param($path, $browser)
$xml = [xml](Get-Content $path) # Getting "Unable to connect to the remote server" error in this line
$xpathbrowser = "/suite/parameter[@name='browser']/@value"
$nodes = $xml.SelectNodes($xpathbrowser)
foreach ($node in $nodes) {
if ($node -ne $null) {
if ($node.NodeType -eq "Element") {
$node.InnerXml = $browser
} else {
$node.Value = $browser
}
}
}