Номер формы

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Как бороться с разными номерами формы?
-1 если что не помогает, т.е. на некоторых сайтах она работает, а на некоторых нет.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
а подробнее по поводу не работы на некоторых сайтах?
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
а подробнее по поводу не работы на некоторых сайтах?
есть сайты на одном движке, заметил вылеты, понял что из-за формы, нашел совет ставить -1, работало оно работало попало на один в котором номер формы 1, на нем вылетает.
конкретно нужно сделать клик по вкладке сайта.
на практике понял что дело в номере формы, т.е. с нужным номером оно кликает как надо и куда надо, а без номера (когда стоит -1) не знаю куда кликает, но идет разлогинивание и переход на гланую страницу.
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
может клик идёт не по тому объекту. Может есть объект с такими же атрибутами поисковыми, но в другой форме
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
может клик идёт не по тому объекту. Может есть объект с такими же атрибутами поисковыми, но в другой форме
как это проверить?

я сравнил два экшена , они идентичны во всем кроме поля "форма"
 
Последнее редактирование:

Estrys

Пользователь
Регистрация
15.09.2016
Сообщения
45
Благодарностей
42
Баллы
18
Викладіть приклад сайту.
 
  • Спасибо
Реакции: Nick

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
http://www.perfectprog.net/
Кликнул по экшену в момент записи, экшн перешел на другую страницу и кликнул совершенно по другому элементу без каких-либо ошибок.
Самое смешное что пару недель назад на этом же сайт все прокликивалось как надо.
Изменилась верстка сайта, так вроде нет.

Кстати, также непонятно по какой причине абсолютно рандомно не находит элемент на странице, хотя он там есть! Конечно ошибку можно выявить, но когда она появляется при каких-то условиях, а не просто так.
 
Последнее редактирование:

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Подскажите кто-нибудь!!!
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Так а куда кликать то надо ?
Выж дайте информации сначала, чтобы вам помочь могли.
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
При добавлении поста в блог кликать на "Edit HTML", но дело не только в этом, проблема в том что не может найти форму иногда не видит и других кнопок и полей.
Проблема проявилась совсем недавно, недели 2 назад все работало с номером формы 1.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
При добавлении поста в блог кликать на "Edit HTML", но дело не только в этом, проблема в том что не может найти форму иногда не видит и других кнопок и полей.
Проблема проявилась совсем недавно, недели 2 назад все работало с номером формы 1.
Если это происходит иногда, то надо сделать слепки страниц и смотреть а чем они отличаются от тех где все ок кликает.
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Записал. Как теперь все это сравнить? Там куча кода, как понять в чем проблема?
Очень просто, вы ищете какойто элемент, он должен быть там-то, он есть все ок. Его нет, вы смотрите исходники, и видите что есть на месте этого элемента, толи страница не подгрузилась, толи у нее другая врестка, толи еще 100500 вариантов.
Но у Вас уже есть информация чтобы понять, а в чем-же грабли.
 

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Очень просто, вы ищете какойто элемент, он должен быть там-то, он есть все ок. Его нет, вы смотрите исходники, и видите что есть на месте этого элемента, толи страница не подгрузилась, толи у нее другая врестка, толи еще 100500 вариантов.
Но у Вас уже есть информация чтобы понять, а в чем-же грабли.
Элемент есть и там и там.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Элемент есть и там и там.
<div><div>vasya</div></div>
<div>vasya</div>
Элемент, есть и там и там, но в одном случае его найдет в другом нет.
А если все одинаково, то скорее всего вы пытаетесь искать до того как страница загрузиться полностью.
Попробуйте после перехода и до парсинга, такой сниппет:
http://zennolab.com/discussion/threads/raznica-v-vypolnenii-shablona-v-postere-i-pm.12331/#post-210040
 
  • Спасибо
Реакции: demian

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
<div><div>vasya</div></div>
<div>vasya</div>
Элемент, есть и там и там, но в одном случае его найдет в другом нет.
А если все одинаково, то скорее всего вы пытаетесь искать до того как страница загрузиться полностью.
Попробуйте после перехода и до парсинга, такой сниппет:
http://zennolab.com/discussion/threads/raznica-v-vypolnenii-shablona-v-postere-i-pm.12331/#post-210040
У меня стоят паузы, а если страница не догружается значит проблема зенно, что он переходит на другой экшн не дождавшись загрузки страницы.
И что номер формы совсем не причем? А за что он тогда отвечает?
 

Estrys

Пользователь
Регистрация
15.09.2016
Сообщения
45
Благодарностей
42
Баллы
18
пауза не завжди підходить.
Краще використовувати код який очікує появу потрібного елементу на сторінці
Код:
for (int i = 0; i < 10 ; i++ ) // 10 спроб при потребі збільшуємо
{
   var formload = instance.ActiveTab.FindElementByAttribute("span","innertext",@"datests","regexp", 0); //умови для пошуку елемента - копіюємо з конструктора действий  
   if (!formload.IsVoid) // якщо елемент не пустий, тобто він присутній на сторінці
   {
     return "ok"; // посилаємо ок в перемінну що вказана  в *Положить результат в переменную* внизу вікна блока
   }
   else // інакше
   {
     System.Threading.Thread.Sleep(1000); // пауза на 1000 милисекунд тут при потребі збільшуємо паузу
   }
}
throw new Exception(""); // не прогрузився елемент, завершуємо блок "Свой C# код" з помилкою!
 
  • Спасибо
Реакции: Nick

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
пауза не завжди підходить.
Краще використовувати код який очікує появу потрібного елементу на сторінці
Код:
for (int i = 0; i < 10 ; i++ ) // 10 спроб при потребі збільшуємо
{
   var formload = instance.ActiveTab.FindElementByAttribute("span","innertext",@"datests","regexp", 0); //умови для пошуку елемента - копіюємо з конструктора действий 
   if (!formload.IsVoid) // якщо елемент не пустий, тобто він присутній на сторінці
   {
     return "ok"; // посилаємо ок в перемінну що вказана  в *Положить результат в переменную* внизу вікна блока
   }
   else // інакше
   {
     System.Threading.Thread.Sleep(1000); // пауза на 1000 милисекунд тут при потребі збільшуємо паузу
   }
}
throw new Exception(""); // не прогрузився елемент, завершуємо блок "Свой C# код" з помилкою!
Спасибо.
Очень оригинально писать сюда по украински.
 
  • Спасибо
Реакции: Sergodjan

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
<div><div>vasya</div></div>
<div>vasya</div>
Элемент, есть и там и там, но в одном случае его найдет в другом нет.
А если все одинаково, то скорее всего вы пытаетесь искать до того как страница загрузиться полностью.
Попробуйте после перехода и до парсинга, такой сниппет:
http://zennolab.com/discussion/threads/raznica-v-vypolnenii-shablona-v-postere-i-pm.12331/#post-210040
Не помогло!
Проблема там только с номером формы, проверил это выставляя от -1 до 2 для разных сайтов. Только выставляешь нужный номер формы сразу!!! кликает там где надо!

Интересно, там четко прописано название элемента, но кликает хз по чему, но только не по нему.
Там же четкое значение Editor\HTML, почему эта дура кликает по имени пользователя?
:aq:

Что такое вообще номер формы и как один и единственный!!! элемент может присутствовать сразу в нескольких формах, если программа кликает по разным ссылкам?
Еще странность. В конструкторе действий если указать номер формы как -1 и сделать поиск, то оно все верно находит, но при работе самого экшена кликает совсем по другим местам.

 
Последнее редактирование:

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Не помогло!
Проблема там только с номером формы, проверил это выставляя от -1 до 2 для разных сайтов. Только выставляешь нужный номер формы сразу!!! кликает там где надо!

Интересно, там четко прописано название элемента, но кликает хз по чему, но только не по нему.
Там же четкое значение Editor\HTML, почему эта дура кликает по имени пользователя?
:aq:

Что такое вообще номер формы и как один и единственный!!! элемент может присутствовать сразу в нескольких формах, если программа кликает по разным ссылкам?
Еще странность. В конструкторе действий если указать номер формы как -1 и сделать поиск, то оно все верно находит, но при работе самого экшена кликает совсем по другим местам.

Потому-что условия очень расплывчатые, если не нашли по href ищем по InnerText, если не нашли по нему ищем просто имени тэга.
Испльзуйте xPath лучше.
C#:
HtmlElement he = instance.ActiveTab.FindElementByXPath("//a[contains(@href,'login')]", 0);
if (he.IsVoid) throw new Exception("Елемент не найден");
he.Click();
 
  • Спасибо
Реакции: GreenWay и demian

demian

Client
Регистрация
26.09.2011
Сообщения
300
Благодарностей
17
Баллы
18
Потому-что условия очень расплывчатые, если не нашли по href ищем по InnerText, если не нашли по нему ищем просто имени тэга.
Т.е. в этом экшене можно убрать все строки кроме InnerText ?

UPD Код выдает ошибку. Мне нужно искать "Editor\HTML" я вписал его вместо Login.
 
Последнее редактирование:

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Т.е. в этом экшене можно убрать все строки кроме InnerText ?

UPD Код выдает ошибку. Мне нужно искать "Editor\HTML" я вписал его вместо Login.
Скинь мне штук несколько страниц в личку, и что тебе надо в них найти, я тебе сделаю запрос, это будет проще, а то гадание на кофейной гуще получается.
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)