仅在 while 循环中打印一次语句(Python、Selenium)

时间:2021-05-17 20:14:22

标签: python selenium

driver.get("Link of product site.")
while "Not available right now." in driver.page_source:
print("Not available right now, reloading site until it is available..")
driver.refresh()
sleep(45)

else:
print("It is available! Gonna order it now..")

这里的问题是它每 45 秒给我很多打印语句。它怎么可能只给出一次声明“现在不可用,重新加载站点直到可用..”直到 else 语句为真?

(用 Python、Selenium 编写)

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您只需要更改代码的顺序,不需要 if..else 语句。让它默认为“正在检查可用性...”,然后开始循环,每 45 秒刷新一次页面,直到您指定的文本从 driver.page_source

消失
driver.get("Link of product site.")
print("Checking availability...")
while "Not available right now." in driver.page_source:
    sleep(45)
    driver.refresh()
    

print("It is available! Gonna order it now..")

如果它立即可用,它会立即将它们打印出来..

Checking availability...
It is available! Gonna order it now..

否则它们之间会有时间延迟。

如果你想添加一个时间戳,以便知道需要多长时间才能使用:

import datetime

current_time = datetime.datetime.now()

driver.get("Link of product site.")
print("Checking availability...")
print(current_time)
while "Not available right now." in driver.page_source:
    sleep(45)
    driver.refresh()
    

print("It is available! Gonna order it now..")
print(current_time)
相关问题