【问题标题】:Cannot Iterate over objects in Power Shell无法迭代 Powershell 中的对象
【发布时间】:2018-02-15 03:19:16
【问题描述】:

我有一个网页上的按钮列表。我可以使用 Get Class Name 函数获取按钮列表。但我无法对其进行迭代。

代码如下:

main role="main">
        <div class="wrapper">

        </div>

        <div class="wrapper wrapper-medium">


  <header>
    <h1>Unsubmitted Timesheets</h1>

    <div class="clearfix">
      <div class="fl-left">
        <select name="" id="select-timeframe" class="hui-input"><option value="/missing_time/period/36/2018">05 Feb 2018 - 11 Feb 2018</option>
<option selected="selected" value="/missing_time/period/29/2018">This Week</option>
<option value="/missing_time/period/22/2018">22 Jan 2018 - 28 Jan 2018</option>
<option value="/missing_time/period/15/2018">15 Jan 2018 - 21 Jan 2018</option>
<option value="/missing_time/period/8/2018">08 Jan 2018 - 14 Jan 2018</option>
<option value="/missing_time/period/29/2018?all_weeks=1">- show all weeks -</option></select>
      </div>

        <div class="fl-right">
          <button type="button" class="hui-button" data-open-dialog="email-reminder-dialog">
              <i data-icon="check-green"></i>
              Sending Reminder Every Friday
          </button>
        </div>
    </div>
  </header>

  <section>
      <form id="missing-time-form" action="/missing_time/reminders?return_to=%2Fmissing_time%2Fperiod%2F29%2F2018" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="?"><input type="hidden" name="authenticity_token" value="YmA26BT5bHy1NQKiKks+j/nKl5saFnF2fAmp/Oy6zuWANPkuuMLYTZDtdZHa/7TNh2CcUx5R2e0FsPWOxThVoQ==">
        <table id="unsubmitted-timesheets" class="table">
          <thead>
            <tr>
              <th></th>
              <th>
                Team Members<br>
                <small>
                  Select:
                  <button type="button" class="button-link js-toggle-all-users">All</button>
                  /
                  <button type="button" class="button-link js-toggle-no-users">None</button>
                </small>
              </th>
              <th class="text-right">Time</th>
              <th></th>
            </tr>
          </thead>
          <tbody class="has-clickable-table-rows" data-required-checkboxes="You must select at least one recipient.">
              <tr class="clickable-row">
                <td class="col-checkbox">
                  <div class="hui-checkbox">
                    <input name="send_reminder[1964976]" type="hidden" value="0"><input class="checkbox" aria-label="Send Reminder for Alexander Cubillos" type="checkbox" value="1" name="send_reminder[1964976]" id="send_reminder_1964976">
                    <label for="send_reminder_1964976"></label>
                  </div>
                </td>
                <td>
                  Alexander Cubillos
                    <span class="text-label">Contractor</span>
                  <label for="send_reminder_1964976" class="clickable-row-link"></label>
                </td>
                <td class="text-right">
                  24:00
                  <label for="send_reminder_1964976" class="clickable-row-link"></label>
                </td>
                <td class="col-actions">
                  <a class="hui-button hui-button-tiny" href="/entry/show/29/2018?of_user=1964976">View Timesheet</a>
                </td>
              </tr>
              <tr class="clickable-row">
                <td class="col-checkbox">
                  <div class="hui-checkbox">
                    <input name="send_reminder[1840318]" type="hidden" value="0"><input class="checkbox" aria-label="Send Reminder for Allain Dollete" type="checkbox" value="1" name="send_reminder[1840318]" id="send_reminder_1840318">
                    <label for="send_reminder_1840318"></label>
                  </div>
                </td>
                <td>
                  Allain Dollete
                  <label for="send_reminder_1840318" class="clickable-row-link"></label>
                </td>
                <td class="text-right">
                  24:30
                  <label for="send_reminder_1840318" class="clickable-row-link"></label>
                </td>
                <td class="col-actions">
                  <a class="hui-button hui-button-tiny" href="/entry/show/29/2018?of_user=1840318">View Timesheet</a>
                </td>
              </tr>
              <tr class="clickable-row">
                <td class="col-checkbox">
                  <div class="hui-checkbox">
                    <input name="send_reminder[1882520]" type="hidden" value="0"><input class="checkbox" aria-label="Send Reminder for Anil Khemchandani" type="checkbox" value="1" name="send_reminder[1882520]" id="send_reminder_1882520">
                    <label for="send_reminder_1882520"></label>
                  </div>
                </td>
                <td>
                  Anil Khemchandani
                    <span class="text-label">Contractor</span>
                  <label for="send_reminder_1882520" class="clickable-row-link"></label>
                </td>
                <td class="text-right">
                  0:00
                  <label for="send_reminder_1882520" class="clickable-row-link"></label>
                </td>
                <td class="col-actions">
                  <a class="hui-button hui-button-tiny" href="/entry/show/29/2018?of_user=1882520">View Timesheet</a>
                </td>
              </tr>
              <tr class="clickable-row">
                <td class="col-checkbox">
                  <div class="hui-checkbox">
                    <input name="send_reminder[1028098]" type="hidden" value="0"><input class="checkbox" aria-label="Send Reminder for Anna Jhaveri" type="checkbox" value="1" name="send_reminder[1028098]" id="send_reminder_1028098">
                    <label for="send_reminder_1028098"></label>
                  </div>
                </td>
                <td>
                  Anna Jhaveri
                  <label for="send_reminder_1028098" class="clickable-row-link"></label>
                </td>
                <td class="text-right">
                  0:00
                  <label for="send_reminder_1028098" class="clickable-row-link"></label>
                </td>
                <td class="col-actions">
                  <a class="hui-button hui-button-tiny" href="/entry/show/29/2018?of_user=1028098">View Timesheet</a>
                </td>
              </tr>
              <tr class="clickable-row">
                <td class="col-checkbox">
                  <div class="hui-checkbox">
                    <input name="send_reminder[1399194]" type="hidden" value="0"><input class="checkbox" aria-label="Send Reminder for Chaitanya Potluri" type="checkbox" value="1" name="send_reminder[1399194]" id="send_reminder_1399194">
                    <label for="send_reminder_1399194"></label>
                  </div>
                </td>
                <td>
                  Chaitanya Potluri
                    <span class="text-label">Contractor</span>
                  <label for="send_reminder_1399194" class="clickable-row-link"></label>
                </td>
                <td class="text-right">
                  40:00
                  <label for="send_reminder_1399194" class="clickable-row-link"></label>
                </td>
                <td class="col-actions">
                  <a class="hui-button hui-button-tiny" href="/entry/show/29/2018?of_user=1399194">View Timesheet</a>
                </td>
              </tr>
              <tr class="clickable-row">
                <td class="col-checkbox">
                  <div class="hui-checkbox">
                    <input name="send_reminder[1908612]" type="hidden" value="0"><input class="checkbox" aria-label="Send Reminder for Daniel Pedraza Mena" type="checkbox" value="1" name="send_reminder[1908612]" id="send_reminder_1908612">
                    <label for="send_reminder_1908612"></label>
                  </div>
                </td>
                <td>

理想情况下,我希望单击一个按钮进入下一页执行一些操作,然后返回到第一页。然后转到下一个按钮。应重复此操作,直到访问所有按钮。我一直在努力解决它,但我无法想出解决方案。

我试过这样做,但它只针对第一个或最后一个按钮

($ie.Document.GetElementsByClassName("hui-button hui-button-tiny") |
    Select-Object -First 1).Click()

($ie.Document.GetElementsByClassName("hui-button hui-button-tiny") |
    Select-Object -Last 1).Click()

如果我做这样的事情-

$ViewTimessheetObject=($ie.document.getElementsByClassName("hui-button hui-button-tiny") |Select-Object -first 1)

while($ie.Busy) { Start-Sleep -Milliseconds 100 }
($ViewTimesheetObject |  ForEach-Object {$_.Click()})

它会抛出一条错误消息,指出“您不能在空值表达式上调用方法。+ ($ViewTimesheetObject | ForEach-Object {$_.Click()})

我们将不胜感激任何有关此事的帮助。

【问题讨论】:

    标签: powershell internet-explorer


    【解决方案1】:

    你的 foreach 应该是 $ie.document.getElementsByClassName

    ($ie.document.getElementsByClassName("hui-button hui-button-tiny")) | Foreach { $_.Click()}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-12
      • 2023-04-02
      • 2022-01-23
      • 2020-01-03
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多