在Excel VBA中激活Selenium Bot窗口

时间:2019-07-17 13:36:51

标签: excel vba selenium web-scraping automation

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

first child

然后在获取行之后

parent

我把这行设置为窗口

Dim mainWin As selenium.Window

在出现一个消息框之前,我想激活bot窗口,所以我使用了这些行

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

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

感谢高级帮助

1 个答案:

答案 0 :(得分: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