2017-05-04 12 views
1

私はpowershellを使用してJtracのWebページにアクセスしようとしています。ログインすることはできますが、hrefリンクのSEARCHボタンにアクセスすることはできません。私は取得していますpowershell IEオートメーションhrefの問題

$Url = “http://kbserver/workflow/app/login” 
enter code here`$Username=”XXXXX” 
enter code here`$Password=”XXXXX” 
$IE = New-Object -com internetexplorer.application; 
$IE.visible = $true; 
$IE.navigate($Url); 
while ($IE.Busy -eq $true) 
{ 
Start-Sleep -Milliseconds 2000; 
} 
$Login = $IE.document.getElementById("loginName3").value = "$Username" 
$Login = $IE.Document.getElementById(“password12”).value= "$Password" 
$Login = $IE.Document.getElementsByTagName("input") | where-object {$_.type -eq "submit"} 
$Login.click(); 
while ($IE.Busy -eq $true) 
{ 
Start-Sleep -Milliseconds 5000; 
} 
$Login = $IE.Document.getElementsByTagName("a") | where {$_.href -eq "'?wicket:interface=:2:table:dashboardRows:3:dashboardRow:search::ILinkListen  er::'"} 
$Login.click(); 

エラーは、ヌル値式のメソッドを呼び出すことはできません

です。 C:\ Users \ Dinesh \ Webbb.ps1:20 char:13 + $ Login.click < < < <(); + CategoryInfo:はInvalidOperation:(クリック:String)を[]、RuntimeExceptionが + FullyQualifiedErrorId:あなたの最後の19行、ILinkListen er::のタイプミスを持っているように見えますInvokeMethodOnNull

<a href="?wicket:interface=:2:table:dashboardRows:3:dashboardRow:search::ILinkListener::"> 
 
<img title="SEARCH" src="../resources/search.gif"> </a>

答えて

0

どこにILinkListener::の代わりに。どこに一致するものが見つからないので、nullを返し、null値の$ Loginオブジェクトを取得します。

編集:あなたの問題はまだ線19です。whereフィルタが何も一致していないため$ nullを$ Loginに返すので、$IE.Document.getElementsByTagName("a")を印刷して実際に期待通りの結果を返す必要があります。

Edit2:ウェブサイトに行き、すべてのhrefsをつかんで見ましたが、powershellはhrefから削除します。

代わりに$IE.Document.getElementsByTagName("a") | where {$_.href -eq "?wicket:interface=:2:table:dashboardRows:3:dashboardRow:search::ILinkListener::"}が必要です。

編集3:2番目の問題は、-eqの代わりに-match演算子を使って正規表現で解決できます(チェックする項目がdyanmicの場合、-eqは実際には機能しません)。

$IE.Document.getElementsByTagName("a") | where {$_.href -match "\?wicket:interface=:\d"}

この正規表現は、 "改札:インターフェースは=桁?" containts何も返されます:このように

。 ページ上の他のものがこれがうまくいくと思われるものがない限り、リフレッシュ時に1桁が最適なオプションです。

+0

申し訳ありません。私がここに貼り付けるときにタイプミス。 –

+0

私はあなたの情報に基づいて私の答えを更新しました。 – Phil

+0

運がまだありません。同じエラーが表示されます。 –