Кажется, что поля ввода на самом деле не принимают значения. В дополнение к этой проблеме есть две кнопки входа в систему. Один из них - "отключенный", который вы видите, а другой отображается, когда поля ввода заполнены. Следующая команда показывает разницу в css для каждого из них.
$ie.Document.getElementsByTagName("Button") | where {$_.textContent -eq "Log In"} | foreach {"Log In button`n";$_.outerhtml;"`n"}
Log In button
<button class="tw-block tw-c-text-inherit tw-full-height tw-full-width tw-interactive tw-pd-l-0 tw-pd-r-1 tw-tab-item" role="tab"><div class="tw-align-left tw-flex tw-flex-column tw-full-heig
ht"><div class="tw-flex-grow-0"><div class="tw-font-size-5 tw-regular">Log In</div></div><div class="tw-flex-grow-1"></div><div class="tw-flex-grow-0"><div class="tw-tabs__active-indicator" d
ata-test-selector="ACTIVE_TAB_INDICATOR"></div></div></div></button>
Log In button
<button disabled="" class="tw-align-items-center tw-align-middle tw-border-bottom-left-radius-medium tw-border-bottom-right-radius-medium tw-border-top-left-radius-medium tw-border-top-right-
radius-medium tw-core-button tw-core-button--disabled tw-core-button--primary tw-full-width tw-inline-flex tw-interactive tw-justify-content-center tw-overflow-hidden tw-relative" data-a-targ
et="passport-login-button"><div class="tw-align-items-center tw-core-button-label tw-flex tw-flex-grow-0"><div class="tw-flex-grow-0" data-a-target="tw-core-button-label-text">Log In</div></d
iv></button>
Если мы используем модуль Selenium Powershell, это несколько упрощает задачу, хотя требование для Inte rnet Explorer сделало его немного больше испытывающий. Следующий код можно использовать для успешного входа в Twitch с помощью Inte rnet Explorer.
Во-первых, для того, чтобы драйвер работал, все зоны безопасности в IE должны иметь включенный или выключенный защищенный режим, они должны соответствие. Этот код отключит защищенный режим для всех зон, кроме локального компьютера.
1..4 | foreach {
Set-ItemProperty "hkcu:\Software\Microsoft\Windows\CurrentVersion\Internet Settings\zones\$_\" -Name 2500 -Value 3
}
Теперь мы можем автоматизировать вход в систему. Проблема с поиском кнопки по тегу заключается в том, что в IE возвращается только одна кнопка. Используя xpath, мы можем найти все кнопки и отфильтровать по тексту.
Install-Module Selenium -Scope CurrentUser -Force
$Url ="https://www.twitch.tv/login"
$username="Your_User_Name"
$password="Your_Password"
$driver = Start-SeInternetExplorer -StartURL $Url
$usernamefield = $driver.FindElementById("login-username")
Send-SeKeys -Element $usernamefield -Keys $username
$passwordfield = $driver.FindElementById("password-input")
Send-SeKeys -Element $passwordfield -Keys $password
$loginbutton = $driver.FindElementsByXPath("//button")| where text -eq 'Log In' | select -last 1
$loginbutton.Click()
Я по-прежнему рекомендую использовать Chrome, Firefox или New Edge вместо IE. Следующий код даст тот же результат в Chrome.
Install-Module Selenium -Scope CurrentUser -Force
$Url ="https://www.twitch.tv/login"
$username="Your_User_Name"
$password="Your_Password"
$driver = Start-SeChrome -StartURL $Url
$usernamefield = Find-SeElement -Driver $driver -Id "login-username"
Send-SeKeys -Element $usernamefield -Keys $username
$passwordfield = Find-SeElement -Driver $driver -Id "password-input"
Send-SeKeys -Element $passwordfield -Keys $password
$loginbutton = Find-SeElement -Driver $driver -By TagName "button" | where text -eq 'Log In' | select -last 1
$loginbutton.Click()