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

  • Автор темы Автор темы maxxZEN
  • Дата начала Дата начала

maxxZEN

Client
Регистрация
18.03.2012
Сообщения
596
Реакции
115
Баллы
43
Не могу сообразить, как можно закрыть вкладку по имени, и при этом сделать это действие необязательным? То есть в определенный момент мне нужно закрыть вкладку "popup", но не обязательно эта вкладка существует. Буду признателен за помощь.
 
А как закрыть вкладку с номером 0
Вот так только на С#
5aacceeb601303aa48882e8329f870a4.jpg
 
instance.AllTabs.First().Close();
 
  • Спасибо
Реакции: sentinel
Как активировать вкладку 0 на С# ???
 
Adigen нет, сама вкладка по имени page, но мне надо как в экшене активировать по номеру 0
 
Ошибка была в блоке) всё ок
 
Имеется несколько открытых вкладок, одна из которых это Ютуб, номер вкладки 1. Как закрыть эту вкладку через 60 секунд, после того как видео начало проигрываться?
 
Имеется несколько открытых вкладок, одна из которых это Ютуб, номер вкладки 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);
 
Последнее редактирование:
Какой код подскажите для закрытия всех вкладок, кроме первых двух? С помощью 3 блоков сейчас закрывается, но хотелось бы, что бы шаблон был поменьше)
 
Какой код подскажите для закрытия всех вкладок, кроме первых двух? С помощью 3 блоков сейчас закрывается, но хотелось бы, что бы шаблон был поменьше)
C#:
Развернуть Свернуть Копировать
Tab[] tabs = instance.AllTabs;
for (int i = 2; i < tabs.Count(); i++)
    tabs[i].Close();
 
во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
 
во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
под этот вопрос вам лучше создать отдельную тему,к этой ветке он отношения не имеет.
p/s Эту логику вам на C# нужно сделать или на кубиках?Если на кубиках пишите в раздел вопросы.
 
во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
Перед открытием вкладки сохраняете в переменную текущее время, и когда понаоткрывали вкладок, сравниваете по каждой время открытия с текущим, там где прошло достаточно, закрываете вкладку.
 
System.Threading.Tasks.Task.Run(() => {
Thread.Sleep(60000); // Сколько секунд ждать
instance.GetTabByAddress("tab2").Close(); // Какой таб закрыть

Как указать время ожидания с помощью переменной. И как указать вместо имени вкладки значение переменной, которая меняется?
 
Как указать время ожидания с помощью переменной. И как указать вместо имени вкладки значение переменной, которая меняется?
Код:
Развернуть Свернуть Копировать
System.Threading.Tasks.Task.Run(() => {
Thread.Sleep(Convert.ToInt32(project.Variables["peremennaya_vremya"].Value)); // Сколько секунд ждать
instance.GetTabByAddress(project.Variables["peremennaya_tab2"].Value).Close(); // Какой таб закрыть
 
  • Спасибо
Реакции: SHTINER
А как закрыть все вкладки кроме определенных? По названию. Скажем вкладка One и site-1 должны остаться а остальной закрыть
 
Код:
Развернуть Свернуть Копировать
//закрыть все вкладки кроме указанных (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
Указал
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]
 
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();
}
 
Если, это все замены, которые вы внесли, то ошибка из-за размера массива
попробуйте так
Код:
Развернуть Свернуть Копировать
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();
}
стоить обращаться к элементам массива, а не самому массиву
 
allTabs.Name тоже менял. все так же.
 

Вложения

  • 2019-04-09_193131.jpg
    2019-04-09_193131.jpg
    187 KB · Просмотры: 38
[ i ]- Не указал в коде выше :az:
 
[ 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();
}
 
Последнее редактирование:

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