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

maxxZEN

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

svaminar

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

LexxWork

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

ssXXXss

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

ssXXXss

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

ssXXXss

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

SHTINER

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

Adigen

Client
Регистрация
28.07.2014
Сообщения
828
Благодарностей
637
Баллы
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 069
Благодарностей
2 856
Баллы
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
Сообщения
749
Благодарностей
272
Баллы
63
во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
под этот вопрос вам лучше создать отдельную тему,к этой ветке он отношения не имеет.
p/s Эту логику вам на C# нужно сделать или на кубиках?Если на кубиках пишите в раздел вопросы.
 

Adigen

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

SHTINER

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

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

Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
4 606
Благодарностей
2 394
Баллы
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
Сообщения
390
Благодарностей
43
Баллы
28
А как закрыть все вкладки кроме определенных? По названию. Скажем вкладка One и site-1 должны остаться а остальной закрыть
 

inotoxic

Client
Регистрация
20.04.2015
Сообщения
353
Благодарностей
144
Баллы
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();
}
 
  • Спасибо
Реакции: sergodjan66

art22

Client
Регистрация
24.06.2016
Сообщения
390
Благодарностей
43
Баллы
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
Сообщения
353
Благодарностей
144
Баллы
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
Сообщения
7 934
Благодарностей
4 030
Баллы
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
Сообщения
390
Благодарностей
43
Баллы
28
allTabs.Name тоже менял. все так же.
 

Вложения

art22

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

ukrainec2014

Client
Регистрация
12.05.2017
Сообщения
306
Благодарностей
37
Баллы
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();
}
 
Последнее редактирование:
  • Спасибо
Реакции: one и Сибиряк

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