gpt4 book ai didi

powershell - 在HTML页面中单击<按钮>

转载 作者:行者123 更新时间:2023-12-02 23:58:24 27 4
gpt4 key购买 nike

<button type="submit">Login</button>

我正在尝试使用Windows Powershell单击/提交上述按钮。我尝试了以下代码:

$submitButton = $doc.documentElement.getElementsByClassName('button') |
Select-Object -First 1
$submitButton.click()

这会带来此错误:
You cannot call a method on a null-valued expression.ps1:15 char:1+     $submitButton = $doc.documentElement.getElementsByClassName('button') | ...+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException    + FullyQualifiedErrorId : InvokeMethodOnNullYou cannot call a method on a null-valued expression.ps1:16 char:1+ $submitButton.click()+ ~~~~~~~~~~~~~~~~~~~~~    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException    + FullyQualifiedErrorId : InvokeMethodOnNull

I also tried this code:

$loginBtn = $ie.Document.getElementsById('input') |
Where-Object {$_.Type -eq 'button' -and $_.Value -eq 'LoginButton'}
$loginBtn.click()

但这也会带来与以前相同的错误。

我的PowerShell代码完整:
$username='USERNAME' 
$password='PASSWORD'

$ie = New-Object -ComObject 'internetExplorer.Application'
$ie.Visible= $true
$ie.Navigate("URL EXAMPLE")

while ($ie.Busy -eq $true){Start-Sleep -seconds 1;}

$Open = $ie.Document.getElementByID('has-account')
$Open.click()

$usernamefield = $ie.Document.getElementByID('login-usr').value = $username
$passwordfield = $ie.Document.getElementByID('login-pass').value = $password
$submitButton = $doc.documentElement.getElementsByClassName('button') | Select-Object -First 2
$submitButton.click()

编辑

这是powershell getelementbytagname的输出。注意没有类名或ID,如何单击它?
className                    : 
id :
tagName : BUTTON
parentElement : System.__ComObject
style : System.__ComObject
document : mshtml.HTMLDocumentClass
sourceIndex : 60
offsetLeft : 61
offsetTop : 220
offsetWidth : 320
offsetHeight : 41
offsetParent : System.__ComObject
innerHTML : Login
innerText : Login
outerHTML : <button type="submit">Login</button>
outerText : Login
parentTextEdit : System.__ComObject

编辑
<form id="sp-login-form" action="#" method="post">
<button type="button" id="fb-login-btn" class="button fb">Log in with Facebook<span style="position: absolute;"></span></button>
<em>or</em>
<div>
<label for="login-usr">Username</label>
<input type="text" name="username" id="login-usr" placeholder="Spotify username">
<label for="login-pass" class="pass">Password</label>
<input type="password" name="password" id="login-pass" class="pass" placeholder="Password">
<button type="submit">Login</button>
</div>
</form>

最佳答案

在您共享的代码中,$doc变量未初始化。请在下面的行中使用首先对其进行初始化:

$doc.documentElement.getElementsByClassName('button')

此行的错误,即null-valued expression错误,是由于$doc在这一点上为空。

替代解决方案:而是尝试以下代码来获取页面上表单中的“提交”按钮。您可以根据需要和目标页面来调整代码。
$submitButton=$ie.Document.getElementsByTagName("button") | Where-Object {$_.innerhtml -eq 'Login'}
$submitButton.click();

关于powershell - 在HTML页面中单击<按钮>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37001886/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com