import { DeviceDriver } from '../../drivers/types'; import { sleep, waitForSource } from './element.helper'; export async function navigateToFeedback(driver: DeviceDriver): Promise { if (driver.platform === 'android') { const el = await driver.findElementRaw('-android uiautomator', 'new UiSelector().text("Feedback")'); if (!el) return false; await driver.tapElement(el); await sleep(2000); return true; } const el = await driver.findElementRaw('name', 'Feedback'); if (!el) return false; await driver.tapElement(el); await sleep(2000); return true; } export async function submitFeedback( driver: DeviceDriver, category: string, description: string ): Promise { // Skeleton - implementation depends on actual app UI if (driver.platform === 'android') { const catEl = await driver.findElementRaw('-android uiautomator', `new UiSelector().text("${category}")`); if (!catEl) return false; await driver.tapElement(catEl); await sleep(1000); const textField = await driver.findElementRaw('class name', 'android.widget.EditText'); if (textField) { await driver.typeText(textField, description); await sleep(500); } const submitEl = await driver.findElementRaw('-android uiautomator', 'new UiSelector().text("Submit")'); if (!submitEl) return false; await driver.tapElement(submitEl); await sleep(2000); return true; } // iOS const catEl = await driver.findElementRaw('name', category); if (!catEl) return false; await driver.tapElement(catEl); await sleep(1000); const textFields = await driver.findElementsRaw('class name', 'XCUIElementTypeTextView'); if (textFields.length > 0) { await driver.typeText(textFields[0], description); await sleep(500); } const submitEl = await driver.findElementRaw('name', 'Submit'); if (!submitEl) return false; await driver.tapElement(submitEl); await sleep(2000); return true; }