Выполнение нескольких условий для действия

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
133
Баллы
43
Есть действие, например клик по элементу, в свойствах действия прописываются условия.
Действие совершается при соблюдении любого условия из прописанных.

Как сделать, чтобы действие совершалось при соблюдении всех условий.

Пример.
Нужно кликнуть по ссылке, удовлетворяющей 1-му условию (например, совпадение регулярки по innertext)
2 условие - ссылка должна находиться внутри определенного класса или другого элемента структуры (таблицы, например)



2 Вопрос, тоже связан с этим.




тут на форуме писали про форму в свойствах действия
"-1 - поиск по всем формам
все остальное - разные формы внутристраницы"
документ - это <body>, понятно,

как узнать какое число обозначает какую форму и что за формы вообще?


Спасибо!
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
1) http://data3.floomby.com/files/share/7_5_2014/18/0SuHVlRaME25amg8aLOrMw.png
Все критерии поиска - это атрибуты элемента, тут нет условий таких "ссылка должна находиться внутри определенного класса или другого элемента структуры"
Такое только через код в C#
Если необходимо чтобы все критерии выполнялись. нужно просто поставить им одинаковый номер группы.

2) тег form
 
  • Спасибо
Реакции: zennoX

zennoX

Client
Регистрация
05.04.2014
Сообщения
484
Благодарностей
133
Баллы
43
Спасибо, и этот ваш пост полезен, не сразу его прочитал.
 

kyvour

Активный пользователь
Регистрация
17.05.2014
Сообщения
186
Благодарностей
36
Баллы
28
Думаю, мой вопрос подходит этого треда. Собственно есть фрейм из id и нужно вставить текст внутрь <body> этого фрейма. Как вставить текст - это понятно, но как определить нужный тег т.е. <body>, если зацепится незачто кроме как за id фрейма, в котором он находится?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Ну как-то искать сначала фрейм, брать его innertext там искать признаки body и искать body по этим признакам.
опять же можно использовать innet или outer html
 

kyvour

Активный пользователь
Регистрация
17.05.2014
Сообщения
186
Благодарностей
36
Баллы
28
Я не знаю как найти тег body, начиная искать от фрейма и далее:(
Вот ссылка на такую форму. Задача простая - отправить комментарий :-)
http://www.solobr.ru/communication/blog/weblogs/u143-blog/364.php

там какой то редактор типа tiny mce
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
ну это не совсем такой редактор)
Тут просто тег body атрибут fulltagname
значение body
номер совпадения end
 

kyvour

Активный пользователь
Регистрация
17.05.2014
Сообщения
186
Благодарностей
36
Баллы
28
)) Там не все просто. Не уверен, что на странице будет только 1 фрейм. Сейчас рабочим вариантом остается ставить фокус на самом фрейме (тогда курсор переходит на тело редактора) и эмулировать клавиатуру. Жалко, что задержка меньше 50 мс не ставится, но это мелочи.
Сейчас пытаюсь сниппетом с-шарпа найти этот body
Код:
HtmlElement he = instance.ActiveTab.FindElementById("LHE_iframe_LHEBlogCom");
if (he.IsVoid) return -2;
HtmlElementCollection children = he.GetChildren(true);
if (children.IsVoid) return -1;
foreach(HtmlElement c in children.Elements) {
    if (c.FullTagName == "body") {
        c.SetAttribute("innerhtml", "testtesttest");
        return 1;
    }

}

return 0;
но этот снипет ищет только по точному id фрейма (думаю его можно искать по регекспу, сохранять а потом в сниппете брать из переменной). Я не знаю есть ли метод для поиска елемента по регекспу. И он возвращает всегда 0, т.е. он не находит body в дочерних элементах. сейчас пытаюсь как-то вывести внутренние теги на обзрение, но с с-шарпом не очень, поэтому дочерние елементы (их теги) в файл не хотят запихиваться
 

kyvour

Активный пользователь
Регистрация
17.05.2014
Сообщения
186
Благодарностей
36
Баллы
28
Со сниппетом ничего не вышло. показывает что дочерних елементов у фрейме нет. Может быть чтото-не так сделал. Пока оставлю для тестов ваш вариант и вариант с эмуляцией клавиатуры
 

kyvour

Активный пользователь
Регистрация
17.05.2014
Сообщения
186
Благодарностей
36
Баллы
28

famous1144

Client
Регистрация
27.03.2014
Сообщения
137
Благодарностей
53
Баллы
28
Нашел пристойное решение через js сниппет. Подробно расписал в этой теме http://zennolab.com/discussion/threads/esche-neskolko-voprosov-novichka-v-osnovnom-po-arxitekture-proekta.13845/
Предлагаю присмотреться к методу instance.ActiveTab.FindElementByXPath. Не знаю только, сможет он взять значение из фрейма или нет. Можно попробовать что-то вроде instance.ActiveTab.FindElementByXPath("//iframe/body", 0).
 

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