Что нового

[Сеть, интернет] _IELoadWait (_IECreate) считает, что страница загрузилась, если возникла ошибка

Rive

Новичок
Сообщения
1
Репутация
0
У меня такая проблема: скрипт проверяет страницу, но изредка сталкивается с тем, что пропал интернет, и вылетает, потому что пытается найти элементы управления на незагруженной странице.

Я проверил, и у меня получается, что _IECreate считает, что страница загрузилась, когда возникает страница с сообщением об ошибке, например, "Не удается изобразить эту страницу".

Это легко проверить, достаточно отключить у себя интернет и запустить (немного подождать потом):

Код:
$oIE = _IECreate("testtesttest")
msgbox(0, "Ошибка", @error)


В боксе всегда будет 0.

Что делать? Как определить, что загрузилась именно нужная страница, а не сообщение об ошибке?

Если что - IE 10.

Используйте для AutoIt кода тег [autoit]

madmasles.
 

MaximK

Знающий
Сообщения
33
Репутация
5
Re: [Сеть, интернет] _IELoadWait (_IECreate) считает, что страница загрузилась, если возникла ошибк

Если нет интернета IE выдает вот такую страницу
Код:
<!DOCTYPE HTML>
<html>

    <head>
        <link rel="stylesheet" type="text/css" href="NewErrorPageTemplate.css" >

        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Не удается отобразить эту страницу</title>

        <script src="errorPageStrings.js" language="javascript" type="text/javascript">
        </script>
        <script src="httpErrorPagesScripts.js" language="javascript" type="text/javascript">
        </script>
    </head>

    <body onLoad="javascript:getInfo();">
        <div id="contentContainer" class="mainContent">
            <div id="mainTitle" class="title">Не удается отобразить эту страницу</div>
            <div class="taskSection" id="taskSection">
                <ul id="cantDisplayTasks" class="tasks">
                    <li id="task1-1">Убедитесь, что веб-адрес <span id="webpage" class="webpageURL"></span> правильный.</li>
                    <li id="task1-2">Найдите страницу с помощью поисковой системы.</li>
                    <li id="task1-3">Обновите страницу через несколько минут.</li>
                </ul>
                <ul id="notConnectedTasks" class="tasks" style="display:none">
                    <li id="task2-1">Проверьте, подключены ли все сетевые кабели.</li>
                    <li id="task2-2">Проверьте, не включен ли режим "в самолете".</li>
                    <li id="task2-3">Убедитесь, что беспроводная связь включена.</li>
                    <li id="task2-4">Проверьте, можете ли вы подключиться к широкополосной мобильной сети.</li>
                    <li id="task2-5">Перезагрузите свой маршрутизатор.</li>
                </ul>
            </div>
            <div><button id="diagnose" class="diagnoseButton" onclick="javascript:diagnoseConnectionAndRefresh(); return false;">Исправить проблемы с подключением</button></div>
        </div>
    </body>
</html>
 

alex33

Скриптер
Сообщения
1 457
Репутация
184
Re: [Сеть, интернет] _IELoadWait (_IECreate) считает, что страница загрузилась, если возникла ошибк

Отсюда вытекает решение: проверять страницу, проверять будем по title
Код:
#include <IE.au3>
$oIE = _IECreate("http://error.page/test")
If _IEPropertyGet($oIE, 'title') == "Не удается отобразить эту страницу" Then
    MsgBox(16, "error", "no connect")
    Exit 1
EndIf

У меня сработало.
 
Верх