C# закрыть вкладку

maxxZEN

Client
Регистрация
18.03.2012
Сообщения
596
Благодарностей
113
Баллы
43
Не могу сообразить, как можно закрыть вкладку по имени, и при этом сделать это действие необязательным? То есть в определенный момент мне нужно закрыть вкладку "popup", но не обязательно эта вкладка существует. Буду признателен за помощь.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 714
Баллы
113
Код:
instance.GetTabByAddress("popup").Close();
 

svaminar

Client
Регистрация
21.08.2013
Сообщения
834
Благодарностей
379
Баллы
63
А как закрыть вкладку с номером 0
Вот так только на С#
 

LexxWork

Client
Регистрация
31.10.2013
Сообщения
1 190
Благодарностей
791
Баллы
113
instance.AllTabs.First().Close();
 
  • Спасибо
Реакции: sentinel

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Как активировать вкладку 0 на С# ???
 

Adigen

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

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Adigen нет, сама вкладка по имени page, но мне надо как в экшене активировать по номеру 0
 

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
Ошибка была в блоке) всё ок
 

SHTINER

Пользователь
Регистрация
20.08.2016
Сообщения
31
Благодарностей
0
Баллы
6
Имеется несколько открытых вкладок, одна из которых это Ютуб, номер вкладки 1. Как закрыть эту вкладку через 60 секунд, после того как видео начало проигрываться?
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
Имеется несколько открытых вкладок, одна из которых это Ютуб, номер вкладки 1. Как закрыть эту вкладку через 60 секунд, после того как видео начало проигрываться?
C#:
System.Threading.Tasks.Task.Run(() => {
    Thread.Sleep(60000); // Сколько секунд ждать
    instance.GetTabByAddress("tab2").Close(); // Какой таб закрыть
});
Можно через таймер еще, но он в ПМ глючит.
C#:
new Timer(o => instance.GetTabByAddress("tab2").Close(), null , 60000, Timeout.Infinite);
 
Последнее редактирование:

Punisher

Client
Регистрация
27.12.2014
Сообщения
43
Благодарностей
4
Баллы
8
Какой код подскажите для закрытия всех вкладок, кроме первых двух? С помощью 3 блоков сейчас закрывается, но хотелось бы, что бы шаблон был поменьше)
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 122
Баллы
113
Какой код подскажите для закрытия всех вкладок, кроме первых двух? С помощью 3 блоков сейчас закрывается, но хотелось бы, что бы шаблон был поменьше)
C#:
Tab[] tabs = instance.AllTabs;
for (int i = 2; i < tabs.Count(); i++)
    tabs[i].Close();
 

SHTINER

Пользователь
Регистрация
20.08.2016
Сообщения
31
Благодарностей
0
Баллы
6
во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
 

Sanekk

Client
Регистрация
24.06.2016
Сообщения
999
Благодарностей
390
Баллы
63
во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
под этот вопрос вам лучше создать отдельную тему,к этой ветке он отношения не имеет.
p/s Эту логику вам на C# нужно сделать или на кубиках?Если на кубиках пишите в раздел вопросы.
 

Adigen

Client
Регистрация
28.07.2014
Сообщения
825
Благодарностей
653
Баллы
93
во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
Перед открытием вкладки сохраняете в переменную текущее время, и когда понаоткрывали вкладок, сравниваете по каждой время открытия с текущим, там где прошло достаточно, закрываете вкладку.
 

SHTINER

Пользователь
Регистрация
20.08.2016
Сообщения
31
Благодарностей
0
Баллы
6
System.Threading.Tasks.Task.Run(() => {
Thread.Sleep(60000); // Сколько секунд ждать
instance.GetTabByAddress("tab2").Close(); // Какой таб закрыть

Как указать время ожидания с помощью переменной. И как указать вместо имени вкладки значение переменной, которая меняется?
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 518
Благодарностей
3 370
Баллы
113
Как указать время ожидания с помощью переменной. И как указать вместо имени вкладки значение переменной, которая меняется?
Код:
System.Threading.Tasks.Task.Run(() => {
Thread.Sleep(Convert.ToInt32(project.Variables["peremennaya_vremya"].Value)); // Сколько секунд ждать
instance.GetTabByAddress(project.Variables["peremennaya_tab2"].Value).Close(); // Какой таб закрыть
 
  • Спасибо
Реакции: SHTINER

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
А как закрыть все вкладки кроме определенных? По названию. Скажем вкладка One и site-1 должны остаться а остальной закрыть
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43
Код:
//закрыть все вкладки кроме указанных (Page, XXX, YYY) 
string[] tabs = { "page", "XXX", "YYY" };
Tab[] allTabs = instance.AllTabs;
for (int i = 0; i < allTabs.Count(); i++) {
    if (allTabs.Name != tabs[0] &&
        allTabs.Name != tabs[1] &&
        allTabs.Name != tabs[2])
    allTabs.Close();
}
 
  • Спасибо
Реакции: Sergodjan

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
Указал
string[] tabs = { "one", "popup"};

выходит ошибка

Компиляция кода Ошибка в действии "CS1061" "'System.Array' does not contain a definition for 'Close' and no extension method 'Close' accepting a first argument of type 'System.Array' could be found (are you missing a using directive or an assembly reference?)". [Строка: 6; Cтолбец: 13]
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43
string[] tabs = { "one", "popup"};
Если, это все замены, которые вы внесли, то ошибка из-за размера массива
попробуйте так
Код:
string[] tabs = { "one", "popup" };
Tab[] allTabs = instance.AllTabs;
for (int i = 0; i < allTabs.Count(); i++) {
    if (allTabs.Name != tabs[0] &&
        allTabs.Name != tabs[1] )
    allTabs.Close();
}
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Если, это все замены, которые вы внесли, то ошибка из-за размера массива
попробуйте так
Код:
string[] tabs = { "one", "popup" };
Tab[] allTabs = instance.AllTabs;
for (int i = 0; i < allTabs.Count(); i++) {
    if (allTabs.Name != tabs[0] &&
        allTabs.Name != tabs[1] )
    allTabs.Close();
}
стоить обращаться к элементам массива, а не самому массиву
 

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
allTabs.Name тоже менял. все так же.
 

Вложения

inotoxic

Client
Регистрация
20.04.2015
Сообщения
354
Благодарностей
164
Баллы
43

Вложения

  • 137,1 КБ Просмотры: 36
  • Спасибо
Реакции: art22 и Sergodjan

doc

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

art22

Client
Регистрация
24.06.2016
Сообщения
484
Благодарностей
69
Баллы
28
[ i ]- Не указал в коде выше :az:
 

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
351
Благодарностей
52
Баллы
28
[ i ]- Не указал в коде выше :az:
Рабочий код, оставляет 1 вкладку, по имени "home"

C#:
string[] tabs = { "home" };
Tab[] allTabs = instance.AllTabs;
for (int i = 0; i < allTabs.Count(); i++) {
    if (allTabs[i].Name != tabs[0])
    allTabs[i].Close();
}

аналогично, только имя вкладки берется с переменной

C#:
string[] tabs = { project.Variables["Variable0"].Value };
Tab[] allTabs = instance.AllTabs;
for (int i = 0; i < allTabs.Count(); i++) {
    if (allTabs[i].Name != tabs[0])
    allTabs[i].Close();
}
 
Последнее редактирование:

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