【问题标题】:Activate selenium bot window in excel VBA在 excel VBA 中激活 selenium bot 窗口
【发布时间】:2019-11-26 08:49:49
【问题描述】:

我正在尝试激活 selenium 机器人的窗口... 首先我声明了这一行

Dim mainWin As selenium.Window

然后在 Get 行之后

.Get "https://www.kuwaitcourts.gov.kw/searchPages/searchCases.jsp"

我把这行设置窗口

Set mainWin = .Window

在消息框之前我想激活机器人窗口,所以我使用了这些行

        mainWin.Activate

        MsgBox "Click OK After Entering Captcha", 64

循环开始时没有问题,因为机器人窗口已经处于活动状态,但至于第二个循环,我没有激活机器人窗口 知道如何克服这一点并在需要激活 selenium bot 窗口时激活

感谢您的帮助

【问题讨论】:

  • 您是否尝试过使用输入框并将结果设置为适当的元素?
  • 非常感谢。你能给我更多的细节吗?

标签: excel vba selenium web-scraping automation


【解决方案1】:

使用javascript返回焦点?前面有窗

bot.ExecuteScript "window.focus();"

暂停输入的方式:

  1. 输入框:

为什么不使用 inputBox(设置为数字类型)来捕获条目?下面是伪代码(假设验证码在需要切换到的 iframe 中。

Dim captchaBox As Object, captcha As Long
.SwitchToFrame (.FindElementById("someId")) '<==some identifier for iframe if present
Set captchaBox = .FindElementByCss("#txtCaptia")
' Accept Number from the user
captcha = Application.InputBox("Please enter 4 digit captcha:", "Captcha", , , , , , 1)
captchaBox.Value = captcha
'.SwitchToDefaultContent   ''<back to main if in iframe and is required even after submit.

  1. DoEvents 并循环到所需的长度:

代码

Dim submitButton As Object
Set submitButton =  .FindElementsByCss("#cmdSubmit")
Do
DoEvents
Loop Until submitButtons.count = 0 

或者

Dim captcha As Object
Set captcha =  .FindElementsByCss("#txtCaptcha")
Do
DoEvents
Loop Until len(captcha.value) = 4

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-19
  • 1970-01-01
相关资源
最近更新 更多