- scheduler.py: fix get_anime_service import, success as string - download.robot: fix queue endpoint path, retry needs list - logging.robot: fix JSON path access for config - nfo.robot: accept 400 when TMDB not configured - anime_settings.robot: Execute JavaScript -> Evaluate JavaScript
7.4 KiB
Task 1: Fix Robot.Ui.Anime Settings.Anime Settings Page Loads
Test File: tests/robot/ui/anime_settings.robot
Error:
No keyword with name 'Execute JavaScript' found.
Context:
The test uses Execute JavaScript to initialize the AnimeSettingsManager:
Execute JavaScript window.AniWorld && AniWorld.AnimeSettingsManager && AniWorld.AnimeSettingsManager.init();
Root Cause:
The Execute JavaScript keyword is not available in the Browser library by default. In Robot Framework's Browser library (Playwright), JavaScript execution is done via different keywords.
Fix Instructions:
Replace Execute JavaScript with Browser library's Evaluate JavaScript or Run Script keyword. The Browser library uses:
Evaluate JavaScriptorEvaluatefor executing JS and returning a value- Or use Playwright's
page.evaluate()equivalent via Browser library
Example fix:
# Instead of:
Execute JavaScript window.AniWorld && AniWorld.AnimeSettingsManager && AniWorld.AnimeSettingsManager.init();
# Use:
Evaluate JavaScript window.AniWorld && window.AniWorld.AnimeSettingsManager && window.AniWorld.AnimeSettingsManager.init()
Note: The Browser library's Evaluate JavaScript returns the result of the expression, so you may need to adjust the test accordingly.
Task 2: Fix Robot.Ui.Anime Settings.Regenerate NFO
Test File: tests/robot/ui/anime_settings.robot
Error:
No keyword with name 'Execute JavaScript' found.
Same fix as Task 1. Apply the same replacement for Execute JavaScript → Evaluate JavaScript.
Task 3: Fix Robot.Ui.Anime Settings.Update Series Settings
Test File: tests/robot/ui/anime_settings.robot
Error:
No keyword with name 'Execute JavaScript' found.
Same fix as Task 1. Apply the same replacement for Execute JavaScript → Evaluate JavaScript.
Task 4: Fix Robot.Ui.Dashboard.Download Selected
Test File: tests/robot/ui/dashboard.robot
Error:
'Mit Server verbunden' does not contain 'queue'
Context: The test expects a toast notification containing "queue" after clicking download, but the toast message is in German ("Mit Server verbunden" = "Connected to server") and doesn't contain "queue".
Root Cause: The toast message returned by the backend is a German localized string that doesn't include the word "queue". The assertion is checking for English text.
Fix Instructions: Option A: Update the assertion to check for the actual German text or a different keyword:
# Check for German text or successful download indication
Toast Should Contain verbund
Option B: Update the backend to return a consistent toast message regardless of language.
Option C: If the download actually succeeds but the toast is different, update the test to verify the download started differently (e.g., check queue count changed).
Task 5: Fix Robot.Ui.Settings Modal.Close Settings Modal Via Overlay
Test File: tests/robot/ui/settings_modal.robot
Error:
TimeoutError: locator.click: Timeout 10000ms exceeded.
Call log:
- waiting for locator('#config-modal .modal-overlay')
- attempting click action
- <label for="anime-directory-input" ...> from <div class="modal-content"> subtree intercepts pointer events
Root Cause: The modal overlay element is being obscured by other elements (the label for anime-directory-input is intercepting pointer events). The click is failing because the element isn't properly accessible.
Fix Instructions:
- Try using
force=Trueto bypass actionability checks:
Click css=#config-modal .modal-overlay force=True
- Or try using
page.locator(...).click(position={...})with coordinates:
Click At Position css=#config-modal .modal-overlay x=0 y=0
- Or try using JavaScript click as a workaround (but use Browser's Evaluate):
Evaluate JavaScript document.querySelector('#config-modal .modal-overlay').click()
Task 6: Fix Robot.Ui.Settings Modal.Close Settings Modal Via Escape
Test File: tests/robot/ui/settings_modal.robot
Error:
TimeoutError: locator.waitFor: Timeout 3000ms exceeded.
Root Cause: The modal isn't closing when Escape is pressed. This could be a timing issue or the keyboard event isn't being captured properly.
Fix Instructions:
- Try adding a small delay before pressing Escape:
Open Settings Modal
Sleep 500ms # Give modal time to fully render
Press Keys id=config-modal Escape
Wait For Elements State id=config-modal hidden timeout=3s
- Or try focusing the modal first:
Open Settings Modal
Click id=config-modal # Focus the modal first
Press Keys Escape
Wait For Elements State id=config-modal hidden timeout=3s
- Or use a different locator for the Escape key:
Press Keys None Escape # Press Escape without targeting specific element
Task 7: Fix Robot.Ui.Settings Modal.Edit General Settings
Test File: tests/robot/ui/settings_modal.robot
Error:
TimeoutError: locator.check: Timeout 10000ms exceeded.
Root Cause:
A checkbox (id=scheduler-rescan-enabled or similar) isn't being checked within the timeout. The element might not be visible or interactable.
Fix Instructions:
- Verify the checkbox ID is correct - check the actual HTML in the settings modal
- Try using
force=True:
Check Checkbox id=scheduled-rescan-enabled force=True
- Or use JavaScript to check the checkbox:
Evaluate JavaScript document.getElementById('scheduled-rescan-enabled').checked = true
Task 8: Fix Robot.Ui.Settings Modal.Disable Scheduler
Test File: tests/robot/ui/settings_modal.robot
Error:
TimeoutError: locator.check: Timeout 10000ms exceeded.
Root Cause: Similar to Task 7 - checkbox interaction is failing.
Fix Instructions:
Same as Task 7. The xpath //label[contains(., 'Enable Scheduler')] might not be correct or clicking the label isn't triggering the checkbox properly.
Try:
Click //label[contains(., 'Enable Scheduler')] force=True
Or find the actual checkbox ID and use Uncheck Checkbox directly.
Task 9: Fix Robot.Ui.Settings Modal.Edit Backup Settings
Test File: tests/robot/ui/settings_modal.robot
Error:
No keyword with name 'Execute JavaScript' found.
Context:
Uses Execute JavaScript to scroll the modal:
Execute JavaScript document.querySelector('#config-modal .modal-body').scrollTop = 10000
Fix Instructions: Replace with Browser library's scroll method:
# Instead of Execute JavaScript, use:
Evaluate JavaScript document.querySelector('#config-modal .modal-body').scrollTop = 10000
Or use Playwright's built-in scrolling:
# Scroll within the modal content area
Scroll css=#config-modal .modal-body down
Task 10: Fix Robot.Ui.Settings Modal.Edit NFO Settings
Test File: tests/robot/ui/settings_modal.robot
Error:
No keyword with name 'Execute JavaScript' found.
Same fix as Task 9. Replace Execute JavaScript with Evaluate JavaScript.
Task 11: Fix Robot.Ui.Settings Modal.Create Config Backup
Test File: tests/robot/ui/settings_modal.robot
Error:
No keyword with name 'Execute JavaScript' found.
Same fix as Task 9. Replace Execute JavaScript with Evaluate JavaScript.