在Powershell中访问Groovy变量

时间:2019-05-30 13:46:42

标签: html powershell jenkins groovy jenkins-plugins

在Jenkins中,我使用如下所示的groovy创建了一个由复选框控制的可折叠部分

jenkins

常规脚本:

        html = 
        '''
        <form>
          Threads:<br>
          <input type="text" name="Threads"><br>
          Duration:<br>
          <input type="text" name="Duration"><br>
          RampUP:<br>
          <input type="text" name="RampUP"><br>
        </form>
        '''
        if (Override_Execution_Details .equals("Yes")) 
        {return html}

上面的代码将在我们选中复选框时打开字段

ui 如何在构建部分的PowerShell代码中访问文本框字段的值,例如线程,持续时间。

我进行了以下更改

new 并尝试访问“线程”值“ 1234” 如$ env:Threads;但这不起作用。请任何人都可以帮助我。

threadvalue

1 个答案:

答案 0 :(得分:0)

您正在显示自己构建的内容,而不是您尝试过的内容,或者出现错误或出现问题。因此,我们产生了假设。因此,由于您没有提供要检查的代码,因此给您一个代码响应是一个挑战。好吧,那是我从未使用过的,甚至从未见过詹金斯(Jenkins),只是人们在论坛/问答网站等上谈论它。

PowerShell不是用于GUI自动化的工具。如果您尝试开箱即用,则仅限于SendKeys,但是大多数情况下,这是为了在GUI上执行操作时将内容发送给他们,虽然可以,但是在某些情况下可能不可靠。

您似乎在说要从GUI复制内容,您可以使用SendKey7s进行复制,但是同样,我之前的评论仍然存在。因此,您需要一个更强大的GUI自动化工具。参见:

AutoIT及其PowerShell cmdlets或类似工具,例如Selenium

最后,如果只是HTML,那么在后端,只要知道所需的元素,就可以实现。但是,我对Jenkins一无所知,此屏幕快照看起来像是x86 / x64 GUI表格。因此,您必须像使用WinForms或WPF一样访问表单元素才能获得内容。

WF示例:

# build form, take user input, output to screen

 function Get-URL 
 {
   [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")

   $Form = New-Object System.Windows.Forms.Form
   $Form.width = 300
   $Form.height = 110
   $Form.Text = ”Please enter a URL”

   $txtURL = new-object System.Windows.Forms.TextBox;
   $txtURL.Location = new-object System.Drawing.Size(130,7)
   $txtURL.Size = new-object System.Drawing.Size(130,30)
   $Form.Controls.Add($txtURL)

   $lblURL = new-object System.Windows.Forms.Label
   $lblURL.Location = new-object System.Drawing.Size(10,10)
   $lblURL.size = new-object System.Drawing.Size(130,20)
   $lblURL.Text = "Please enter a URL:"
   $Form.Controls.Add($lblURL)

   $btnSubmit = new-object System.Windows.Forms.Button
   $btnSubmit.Location = new-object System.Drawing.Size(100,40)
   $btnSubmit.Size = new-object System.Drawing.Size(100,20)
   $btnSubmit.Text = "Submit"
   $btnSubmit.Add_Click({Return-Get-URL})
   $form.Controls.Add($btnSubmit)

   $Form.Add_Shown({$Form.Activate()})
   $x = $Form.ShowDialog()
   return $txtURL.Text
 }

function Return-Get-URL 
{ $Form.Close() }

( $url = Get-URL )