我一直在尝试使用Instagram练习硒。我试图找到一种除了print((之外的方法来记录函数正在运行,如果可能的话,我也想知道它需要多长时间才能完成。
目前正在使用类似的东西-
def login(self):
print("login started")
login_url = "https://www.instagram.com/accounts/login/"
self.driver.get(login_url)
sleep(2)
email_input = self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[1]/div/label/input')
password_input = self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[2]/div/label/input')
email_input.send_keys(INSTA_EMAIL)
password_input.send_keys(INSTA_PASS)
sleep(2)
password_input.send_keys(Keys.ENTER)
print("login successful")
如果你能给我指一下任何有助于显示函数开始和结束时间的函数/文档,我将不胜感激。感谢
我最近为我的函数做了类似的事情。也许这可以帮助你,你可以添加这个:
def logging_decorator(function):
def wrapper(*args, **kwargs):
# get start time
start_time = time()
# get current function name
print(f"{function.__name__} function started")
# calling the function
function(*args, **kwargs)
# get the end time
end_time = time()
print(f"{function.__name__} function completed, run speed: {end_time - start_time} s")
return wrapper
并像这样使用:
@logging_decorator
def login(self):
login_url = "https://www.instagram.com/accounts/login/"
self.driver.get(login_url)
sleep(2)
email_input = self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[1]/div/label/input')
password_input = self.driver.find_element_by_xpath('//*[@id="loginForm"]/div/div[2]/div/label/input')
email_input.send_keys(INSTA_EMAIL)
password_input.send_keys(INSTA_PASS)
sleep(2)
password_input.send_keys(Keys.ENTER)
预期输出:
login function started
login function completed, run speed:XXs
您可以在此处阅读更多信息:https://www.programiz.com/python-programming/decorator