feat: implement MCP red teaming test suite v2 with automated scripts, logging, and comprehensive evidence documentation.
هذا الالتزام موجود في:
78
scripts/clear_accounts.py
Normal file
78
scripts/clear_accounts.py
Normal file
@@ -0,0 +1,78 @@
|
||||
import sys
|
||||
import time
|
||||
from pathlib import Path
|
||||
from playwright.sync_api import sync_playwright
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).parent / "src"))
|
||||
from client import load_accounts, login_with_credentials
|
||||
|
||||
def clear_account_chats(page, email):
|
||||
print(f"Clearing chats for: {email}")
|
||||
try:
|
||||
# Wait for the sidebar list to appear
|
||||
page.wait_for_selector('.sb-list', timeout=10000)
|
||||
except:
|
||||
print(f" Sidebar not found or already empty for {email}.")
|
||||
return
|
||||
|
||||
# Override confirm dialog to always return true
|
||||
page.evaluate("window.confirm = () => true;")
|
||||
|
||||
deleted_count = 0
|
||||
while True:
|
||||
# Give UI time to update
|
||||
page.wait_for_timeout(1000)
|
||||
buttons = page.locator('.sb-item button.x')
|
||||
count = buttons.count()
|
||||
if count == 0:
|
||||
break
|
||||
|
||||
print(f" Found {count} chats. Deleting first one...")
|
||||
try:
|
||||
# Force click the first delete button
|
||||
buttons.nth(0).click(force=True)
|
||||
deleted_count += 1
|
||||
# Wait a bit for the backend request and UI removal
|
||||
page.wait_for_timeout(1000)
|
||||
except Exception as e:
|
||||
print(f" Error clicking delete: {e}")
|
||||
break
|
||||
|
||||
print(f" Done clearing {email}. Deleted {deleted_count} chats.")
|
||||
|
||||
def main():
|
||||
accounts = load_accounts()
|
||||
if not accounts:
|
||||
print("No accounts found.")
|
||||
return
|
||||
|
||||
print(f"Found {len(accounts)} test accounts to clear.")
|
||||
|
||||
with sync_playwright() as pw:
|
||||
browser = pw.chromium.launch(headless=True)
|
||||
|
||||
for account in accounts:
|
||||
email = account['email']
|
||||
password = account['password']
|
||||
|
||||
context = browser.new_context(viewport={"width": 1280, "height": 800})
|
||||
page = context.new_page()
|
||||
|
||||
print(f"\n--- Logging into {email} ---")
|
||||
try:
|
||||
logged_in = login_with_credentials(page, email, password)
|
||||
if not logged_in:
|
||||
print(f" Failed to login to {email}")
|
||||
else:
|
||||
clear_account_chats(page, email)
|
||||
except Exception as e:
|
||||
print(f" Exception handling {email}: {e}")
|
||||
finally:
|
||||
context.close()
|
||||
|
||||
browser.close()
|
||||
|
||||
print("\n[✓] All test accounts have been processed and cleared.")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
المرجع في مشكلة جديدة
حظر مستخدم