>

powershell에 정통한 사람이 ID "user_name"을 사용하여 사용자 이름 입력 필드를 찾을 수없는 이유를 알려줄 수 있습니까? 나는 다른 웹 사이트에서 이것을 시도했지만 효과가 있었지만이 웹 사이트는 그것을 찾기를 거부합니다. 또한 IHTMLDocument3_getElementsByName 메소드와 IHTMLDocument3_getElementsByTagName을 시도하여 "입력"또는 "div"와 같은 것을 찾습니다. 일부 div 클래스가 나타나지만 너무 많은 부분이 누락되어 왜 누락되었는지 알 수 없습니다. 빛을 보여주세요.

#ID names
$IDuserName = "user_name"
$IDuserPass = "user_password"
$url = "https://isssupport.service-now.com/"
$ie = New-Object -com InternetExplorer.Application
$ie.visible = $true
$ie.navigate($URL)
While ($IE.Busy -eq $true) {Start-Sleep -Milliseconds 1000} 
$ie.Document.IHTMLDocument3_getElementByID($IDuserName).Value = $userName

사용자 이름 입력 필드의 HTML 줄은 다음과 같습니다

<input name="user_name" id="user_name" type="text" class="form-control" value="" autocomplete="off">


  • 답변 # 1

    이 페이지는 많은 자바 스크립트로 만들어졌습니다. 브라우저에서 자바 스크립트가 활성화되지 않은 상태에서 페이지를 열면 로그인 양식이 표시되지 않습니다. 이것은 IE/PowerShell이 ​​양식과 해당 요소를 찾는 데 문제가있는 것 같습니다.

    그러나 pyzwyz를 사용하여 Internet Explorer 창을 포 그라운드로 가져오고 페이지와 상호 작용할 수는 있습니다.  이렇게 :

    Systems.Windows.Forms
    
    

    내가 작성한 스크립트의 목적이 무엇인지 물어봐도 될까요?

    안녕하세요

    Guenther

    #ID names $IDuserName = "user_name" $IDuserPass = "user_password" $url = "https://isssupport.service-now.com/" $ie = New-Object -com InternetExplorer.Application $ie.visible = $true $wshell = New-Object -ComObject wscript.shell; $wshell.AppActivate($ie.Name) Start-Sleep -Milliseconds 500 $ie.navigate($url) While ($ie.Busy -eq $true) {Start-Sleep -Milliseconds 1000} Add-Type -AssemblyName System.Windows.Forms [System.Windows.Forms.SendKeys]::SendWait('username'); [System.Windows.Forms.SendKeys]::SendWait('{TAB}'); [System.Windows.Forms.SendKeys]::SendWait('password'); [System.Windows.Forms.SendKeys]::SendWait('{ENTER}');

관련 자료

  • 이전 java - spring-security는 authorizeRequests () anyRequest () permitAll ()에도 불구하고 401을 리턴합니다
  • 다음 css - HTML 머티리얼 디자인 버튼