等到验证码字段充满四个数字

时间:2019-07-17 15:54:51

标签: excel vba selenium

这不是克服验证码的尝试,我已经对代码进行了编码,以便用户键入验证码在验证码字段中出现在他身上

我想做的但没有找到方法并坚持的方法是我想写等待行,直到验证码填满为止 所以我尝试过这样的线

DELETE FROM sdp WHERE id = 4; 
INSERT INTO sdp (id, subscription_id, start_time, end_time, pricing) VALUES 
 ( 4 , 2 , '19:00:00'   , '24:30:00' ,  1.50 )
,( 5 , 2 , '00:00:00'   , '05:30:00' ,  1.50 )
;

但是在调试时,我在..中键入了一些数字后却没有得到元素的文本。如何实现这一点?

我有另一种解决方法是设置一条这样的线

Do
    Application.Wait Now + TimeValue("00:00:01")
    Loop Until Len(.FindElementById("txtCaptcha").Text) = 4

这将等待10秒钟,直到用户键入数字为止,但我想使用Do Loop直到...

2 个答案:

答案 0 :(得分:1)

它必须是元素值。尝试在浏览器控制台中获取innerText或value。使用document.querySelector(“#txtCaptcha”)。value或document.querySelector(“#txtCaptcha”)。innerText。

答案 1 :(得分:1)

它基于您的其他问题位于iframe中。在src行中使用iframe .get。当您使用硒时,适当的语法如下所示。 DoEvents允许用户输入值。

Do
    DoEvents
Loop While Len(.FindElementById("txtCaptcha").Attribute("value")) < 4