当网页元素显示和消失两次时采用的逻辑

问题描述

我现在正在为某些事情而苦苦挣扎,我不知道如何解决这个问题。

使用 Selenium 和 Helium,我正在一个网络应用上运行一些测试。

在某些时候,网络应用会打印屏幕拦截器。此屏幕锁出现和消失两次。

我必须等待第二个消失才能继续做其他事情。

我该怎么做?

我试过的代码

while S(".loadingHeader").exists:
    print ("loading")

这段代码是第一次出现屏幕拦截

我接受你的任何想法。

谢谢你,祝你有个美好的一天

解决方法

如果你想让它出现和消失,你可以用一个空白字符串替换第一个打印,然后在输入 time.sleep(2) 后打印第二个消息。在第二条消息之后,您可以执行相同的操作。

例如:

import time
msg = "loading"
print(msg)
# Set the amount of seconds you want to wait
time.sleep(2)
print(" " * len(msg))
,

感谢您的回答。

我最终这样做了:

wait_until (S(".loadingHeader").exists)
time_open = time.time()
while S(".loadingHeader").exists():
    time.sleep(0.5)
    print ("Loading")
if (lambda : not S(".loadingHeader").exists):
    wait_until (S(".loadingHeader").exists)
    print ("Loading Again")
    while S(".loadingHeader").exists():
        print ("Loading")
        time.sleep(0.5)
tmp_time_open = (time.time() - time_open)
print ("Not Loading Anymore !!!")
print ("Opening in : " + str(tmp_time_open))

它就是这样工作的。 希望对其他人有用