【发布时间】:2021-11-08 21:39:25
【问题描述】:
我刚刚开始使用 powershell 脚本。
我正在尝试自动化付款流程(供个人使用)。
但是当我通过脚本输入付款信息时,该信息不会保存在页面上(数据充当占位符)
我尝试在输入值之前使用“focus()”,但它不起作用:( (也许不好用?)
我想在输入值后模拟“ENTER”键按下,但我觉得我在滥用语法
这是我的代码示例:
$cardnumber = "4000 1000 2000 0000"
$nameoncard = "Alban Mysteriousguy"
$expirationdate = "10/77"
$ccv = "420"
$ie = New-Object -COMObject InternetExplorer.Application
$ie.visible = $true
$ie.Navigate(‘https://secure2.ldlc.com/fr-fr/DeliveryPayment’)
#Achat CB
while ($ie.Busy -eq $true) { Start-Sleep -Seconds 1; } #wait for browser idle
#notworking
$Carednumbervar = $ie.document.getElementsByName("CardNumber")
($Carednumbervar |Select-Object -first 1).value = $cardnumber;
#working
($ie.document.getElementsByName("OwnerName") |Select-Object -first 1).value = $nameoncard;
#notworking
($ie.document.getElementsByName("ExpirationDate") |Select-Object -first 1).value = $expirationdate;
#notworking
($ie.document.getElementsByName("Cryptogram") |Select-Object -first 1).value = $ccv;
#working
$payementButton = $ie.Document.getElementsByTagName('button') | Where-Object { ($_.ClassName -ceq 'button color2 maxi') }
$CGV = $ie.Document.getElementsByTagName('label') | Where-Object { ($_.for -ceq 'terms') }
$CGV.click
#$payementButton.click()
如果有人知道我该如何解决这个问题,或者只是我可以尝试的技巧,欢迎您:)
提前致谢
PS:要测试脚本,您需要创建一个 Ldlc.com 帐户,在您的购物车中添加一些东西并转到付款页面(例如https://secure2.ldlc.com/fr-fr/DeliveryPayment)如果需要我可以上传该行为的视频。
编辑:在这里我制作了一个 youtube 视频来展示我的问题:youtu.be/pTbSWU_cudY
【问题讨论】:
-
到底是什么问题?
$ie.document.getElementsByName("CardNumber")返回什么? -
它返回脚本应该写入信用卡号码的字段。我知道这部分是部分工作,因为当页面加载时,我看到字段上的数字,但它们的行为就像它们是“占位符”一样,页面无法识别这些数据,就像用户写的一样在这里我做了一个 youtube显示我的问题的视频:youtu.be/pTbSWU_cudY
-
我试图重现您的问题,但失败了。显示的页面与您的不同。可以的话,请提供页面的html代码,有助于解决问题。
-
您好,首先感谢您的帮助。我假设如果显示的页面与我的不同,那是因为您在另一个国家/地区。我已经复制了页面的所有源代码,你可以在这个链接上找到它:jsfiddle.net/bq6axgm7再次感谢你的帮助。祝你有美好的一天!
-
请问您是否有机会检查我的答案?如果您有任何其他问题,我很乐意为您提供帮助。
标签: powershell internet-explorer automation bots