- Регистрация
- 27.12.2016
- Сообщения
- 289
- Благодарностей
- 404
- Баллы
- 63
Добрый день. При работе с gsm-модемом периодически не догружается страница. Причем прокси чекается норм, а потом хрясь... Выглядит это по разному:
Соответственно с точки зрения зенки страница есть, а проверки типа tab.IsNull tab.IsVoid возвращают ложь. tab.IsBussy тоже не срабатывает, тк на странице имеется какой-никакой DOM. Сейчас проверку загрузки делаю костылем в цикле:
Дальше по обстоятельствам — либо перезагрузка, либо BadEnd. И если перезагрузка — это дополнительные кубики, чтобы не уйти в бесконечный цикл, костыли значительно усложняют шаблон, его читабельность и структуру.
Может быть кто подскажет более изящное решение? Спасибо.
HTML:
<!--иногда так-->
<html>
<head>
<!--тут может что-то быть, а может и нет-->
</head>
</html>
<!--иногда так-->
<html>
<head>
<!--тут может что-то быть, а может и нет-->
</head>
<body>
<!--тут пусто-->
</body>
</html>
C#:
//проверяем, что форма прогрузилась поиском элемента form
var he = instance.ActiveTab.FindElementByXPath(@"//xpath", 0);
//даем догрузиться странице, выполниться всему js, и сгенерить страницу регистрации
for(int i=0; i<=10; i++)
{
if((he.IsNull)||(he.IsVoid))
{
Thread.Sleep(5000);
}
else{project.SendInfoToLog("страница прогрузилась");}
}
if((he.IsNull)||(he.IsVoid))
{
throw new Exception("Не удалась загрузка страницы");
}
Может быть кто подскажет более изящное решение? Спасибо.