fix : agent full screen system
This commit is contained in:
@@ -258,8 +258,15 @@ export class FirefoxController {
|
||||
if (!best.active) {
|
||||
await this.click(best.x, best.y);
|
||||
} else {
|
||||
// Referme le menu sans rien changer.
|
||||
await this.pressEscape();
|
||||
// Referme le menu sans rien changer — en recliquant le bouton qui
|
||||
// l'a ouvert, pas avec Échap. Le rappel de plein écran a lieu avant
|
||||
// cet appel (voir l'ordre dans `startCapture`) : si la touche du
|
||||
// lecteur a fait entrer la page dans l'API plein écran native,
|
||||
// Échap en sort aussitôt — c'est le navigateur qui l'intercepte pour
|
||||
// ça, avant même que la page ne la voie passer, et rien côté page ne
|
||||
// peut s'y opposer. Un second clic sur le même bouton bascule le menu
|
||||
// fermé sans y toucher.
|
||||
await this.click(buttonPoint.x, buttonPoint.y);
|
||||
}
|
||||
|
||||
// Le curseur reste sinon posé sur le bouton ou l'option cliquée : la barre
|
||||
@@ -754,26 +761,6 @@ export class FirefoxController {
|
||||
return JSON.parse(raw) as { x: number; y: number } | null;
|
||||
}
|
||||
|
||||
private async pressEscape(): Promise<void> {
|
||||
await this.send(
|
||||
'input.performActions',
|
||||
{
|
||||
context: this.context,
|
||||
actions: [
|
||||
{
|
||||
type: 'key',
|
||||
id: 'stream-control-keyboard',
|
||||
actions: [
|
||||
{ type: 'keyDown', value: webdriverKey('escape') },
|
||||
{ type: 'keyUp', value: webdriverKey('escape') },
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
5000,
|
||||
).catch(() => undefined);
|
||||
}
|
||||
|
||||
private async evaluate(expression: string, userActivation = false): Promise<unknown> {
|
||||
const response = await this.send<{
|
||||
type: string;
|
||||
|
||||
Reference in New Issue
Block a user