Можно ли проверить, завершил ли Firefox загрузку страницы с использованием Python и Win32API (или связанных)?
У меня есть код ниже, который находит PID для Firefox, и хотел бы разработать такую функцию, как is_loaded(PID)
, которая возвращает истину или ложь, в зависимости от того, загружена страница или нет.
import win32api
import win32process
import win32con
from pynput.mouse import Listener as mouseListener
import time,win32gui
def on_click(x, y, button, pressed):
if pressed:
#print("Clicked!!")
return False
def selectWindow():
with mouseListener(on_click=on_click) as listener:
print("Select a Firefox tab, i.e. click on it...")
listener.join()
time.sleep(0.1) # A delay is sometimes required. Reason unkonw.
hwnd = win32gui.GetForegroundWindow()
return hwnd
def main():
hwnd = selectWindow()
print("hwnd:",hwnd)
pid = win32process.GetWindowThreadProcessId(hwnd)
print("pid:",pid)
handle = win32api.OpenProcess(win32con.PROCESS_QUERY_INFORMATION | win32con.PROCESS_VM_READ, False, pid[1])
proc_name = win32process.GetModuleFileNameEx(handle, 0)
print("proc_name:",proc_name)
# Code to write:
# Check if Firefox page is loaded
# status = is_loaded(pid) # Should return true of false
if __name__ == "__main__":
main()
Комментарий 1: Это не вопрос использованияJS или Selenium
Комментарий 2: Для решения этой задачи сегодня я использую нестабильный код, который многократно делает скриншоты окна Firefox и ищет исчезновение креста рядом с адресной строкой, но мне хотелось бызаменить код на что-то более стабильное и элегантное.