Powershell null-valued表达式错误

时间:2017-09-27 19:26:42

标签: javascript powershell internet-explorer powershell-v3.0 ie-automation

我是Powershell的新手,我一直在努力解决这个问题的时间比我承认的要长。我正在尝试自动填充Intranet webform,我认为这将非常简单。我已经完成了登录组件,但是我在填写表单上的“姓氏”文本框时遇到了问题。

$url = "www.myintranetsite.com"
$lastname="Smith" 
$firstname="John" 
$ie = New-Object -com internetexplorer.application; 
$ie.visible = $true; 
$ie.navigate($url); 
while ($ie.Busy -eq $true) 
{ 
Start-Sleep -Milliseconds 1000; 
} 
$ie.Document.getElementById("ERM_SEARCH_WRK_ERM_LAST_NAME_LBL").value = 
$lastname 

错误标记是我无法在空值表达式上调用方法。罪犯是“ERM_SEARCH_WRK_ERM_LAST_NAME_LBL”

关于为什么$ lastname将作为空值返回的任何建议?

![1]:https://i.stack.imgur.com/Jf8Ht.jpg ![2]:https://i.stack.imgur.com/pE71n.jpg

2 个答案:

答案 0 :(得分:0)

这不是问题的姓氏。这是元素。你能做这样的事吗?

$doc = $ie.document
$lastname = $doc.getElementById('ERM_SEARCH_WRK_ERM_LAST_NAME_LBL')
$lastname.Value = "smith"

并使用元素id上的单引号而不是double

定义$ lastname对象后,使用| get-member检查其成员,看看value是否为可用属性

答案 1 :(得分:0)

您的问题是您尝试向Label添加值。

标签没有价值。

https://www.w3schools.com/TagS/tag_label.asp

根据您的照片,标签适用于 ERM_SEARCH_WRK_ERM_LAST_NAME

$url = "www.myintranetsite.com"
$lastname="Smith" 
$firstname="John" 
$ie = New-Object -com internetexplorer.application; 
$ie.visible = $true; 
$ie.navigate($url); 
while ($ie.Busy -eq $true) 
{ 
Start-Sleep -Milliseconds 1000; 
} 
$ie.Document.getElementById('ERM_SEARCH_WRK_ERM_BO_NAME$542$').value = $lastname