Подтвердить что ты не робот

Закрыть диалоговое окно на веб-странице

Мне нужно вызвать некоторые действия внутри другой веб-страницы. У меня есть этот код:

IHTMLElementCollection DeleteCollection = 
    (IHTMLElementCollection)myDoc.getElementsByTagName("a");

foreach (HTMLAnchorElement buttonDelete in DeleteCollection){
    if (buttonDelete.title != null && buttonDelete.title.StartsWith("Delete")){
        buttonDelete.click();
            // problem goes here
        myDoc.activeElement.click(); 
        SendKeys.Send("{ENTER}");
    }
}

Появится это диалоговое окно:

введите описание изображения здесь

Я пробовал myDoc.activeElement.click(); и SendKeys.Send("{ENTER}");, но диалоговое окно кажется вне страницы, поэтому я не знаю, как вызвать кнопку OK. Как закрыть окно?

4b9b3361

Ответ 1

Вы не можете закрыть диалоговое окно браузера программно. Что вы можете сделать, так это поведение браузера с помощью браузера. Это может сработать для вас:

window.confirm=function(){ return true; };
window.alert=function(){ return true; };
window.prompt=function(){ return "textOfMyChoice"; };

В принципе, вставьте этот javascript, прежде чем нажимать кнопки. Если вы хотите позже восстановить всплывающее поведение, сохраните их в другой глобальной переменной.

Ответ 2

Я полагаю, что любой якорный тег в вашем примере имеет встроенный диалог подтверждения javascript. Вы не закрываете программно этот диалог.

Но вы можете изменить javascript для всех элементов привязки и заменить диалоговое окно подтверждения с помощью настраиваемого диалогового окна jQuery. таким образом, вы можете иметь полный контроль над этим диалогом: закрыть, скрыть, установить тайм-аут и т.д. и т.д.

Transform

<a href="..." onclick="return confirm('are you sure?')" ... >...</a>

к

<a href="..." onclick="return openMyjQueryDialog('are you sure?')" ... >...</a>

Таким образом, пользователь может продолжить нормальное поведение, ваш script может полностью управлять всем элементом диалога.