From ef243cceff7c80b76327fc159255368dc6e276b3 Mon Sep 17 00:00:00 2001
From: MIEM DEV
Date: Fri, 30 Oct 2026 19:28:28 +0300
Subject: [PATCH] fix: ignore hidden book preview controls
---
lib/browser.ts | 2 +-
tests/browser.security.ts | 5 +++++
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git a/lib/browser.ts b/lib/browser.ts
index d34846d..75bc6e8 100644
--- a/lib/browser.ts
+++ b/lib/browser.ts
@@ -89,7 +89,7 @@ export async function checkBrowser(url:string,parentSignal?:AbortSignal):Promise
await navigate(url);await settle();if(['urait.ru','book.ru'].includes(root))await page.waitForLoadState('networkidle',{timeout:4000}).catch(()=>{});let snapshot=await capture();
if(root==='book.ru'){
// CSS tooltips become part of the accessible name on hover; retain a stable DOM-text locator.
- const preview=page.locator('a[href*="reader.new.book.ru"]').filter({hasText:'Ознакомиться'}).first();
+ const preview=page.locator('a[href*="reader.new.book.ru"]').filter({hasText:'Ознакомиться',visible:true}).first();
if(await preview.count()){
await preview.hover({timeout:3000}).catch(()=>{});
await page.waitForFunction(()=>/гостевом\s+режиме|доступны\s+только\s+\d+\s+страниц/i.test(document.body?.innerText??''),undefined,{timeout:3000}).catch(()=>{});snapshot=await capture();
diff --git a/tests/browser.security.ts b/tests/browser.security.ts
index 4857e70..d75e44e 100644
--- a/tests/browser.security.ts
+++ b/tests/browser.security.ts
@@ -68,3 +68,8 @@ test('BOOK.ru locked orange preview is unavailable even without a loaded tooltip
fixture=fixture.replace('
Book