我是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
答案 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