【问题标题】:Powershell to automate IE | fill Paiement form issuePowershell 让 IE 自动化 |填写付款表格问题
【发布时间】: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


【解决方案1】:

感谢您提供详细的代码。我提取了相关的html代码并进行了简单的测试。我发现它工作正常。你需要在IE中取消Enable Protected Mode

Open IE -> Tools -> Internet Options -> security tab -> 取消选中选项 Enanle Protected Mode 并应用

类似这样的:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-02
    • 2016-09-30
    • 2011-07-10
    • 2016-08-21
    • 1970-01-01
    • 2012-06-30
    • 2013-03-09
    • 2016-03-24
    相关资源
    最近更新 更多