'Exception from HRESULT: 0X800A01B6' error in PowerShell when trying to enter login information to Facebook

前端 未结 3 1697
花落未央
花落未央 2020-12-16 06:07

I have this code written in PowerShell:

$username = \"xxxxxx\";
$password = \"xxxxxx\";
$url = \"www.facebook.com/login\";

$ie = New-Object -com internetexp         


        
相关标签:
3条回答
  • 2020-12-16 06:40

    Workaround Always use the following methods instead of the native ones:

    IHTMLDocument3_getElementsByTagName   
    IHTMLDocument3_getElementsByName
    IHTMLDocument3_getElementByID
    

    Thanks to Paul Lim Here

    0 讨论(0)
  • 2020-12-16 06:53

    This might happen as IE is still loading the page or parsing DOM. Try waiting for IE not to be busy before accessing page elements. A simple check for IE's Busy property will do. Like so,

    $username="myname"
    $password="mypass"
    $url = "www.facebook.com/login"
    $ie = New-Object -com internetexplorer.application
    $ie.visible = $true
    $ie.navigate($url)
    
    # Sleep while IE is busy. Check 10 times per second, adjust delay as needed
    while($ie.Busy) { Start-Sleep -Milliseconds 100 }
    
    # IE is not busy with document anymore, pass credentials and click the logon    
    ($ie.document.getElementsByName("email") |select -first 1).value = $username
    ($ie.document.getElementsByName("pass") |select -first 1).value = $password
    ($ie.document.getElementsByName("login") |select -first 1).click()
    
    0 讨论(0)
  • 2020-12-16 06:54

    use this:

    $Url = "http://websiteurl"
    $ie = New-Object -com internetexplorer.application;
    $ie.visible = $true; # make to $true to see the result in webpage
    $ie.navigate($Url);
    while ($ie.Busy -eq $true) { Start-Sleep -Seconds 10; }
    ($ie.Document.IHTMLDocument3_getElementsByName("btnname") | select -first 1).click();
    $ie.quit()
    
    
    0 讨论(0)
提交回复
热议问题