Не могу сообразить, как можно закрыть вкладку по имени, и при этом сделать это действие необязательным? То есть в определенный момент мне нужно закрыть вкладку "popup", но не обязательно эта вкладка существует. Буду признателен за помощь.
instance.GetTabByAddress("popup").Close();
Как активировать вкладку 0 на С# ???
instance.AllTabs[0].SetActive();
Имеется несколько открытых вкладок, одна из которых это Ютуб, номер вкладки 1. Как закрыть эту вкладку через 60 секунд, после того как видео начало проигрываться?
System.Threading.Tasks.Task.Run(() => {
Thread.Sleep(60000); // Сколько секунд ждать
instance.GetTabByAddress("tab2").Close(); // Какой таб закрыть
});
new Timer(o => instance.GetTabByAddress("tab2").Close(), null , 60000, Timeout.Infinite);
Какой код подскажите для закрытия всех вкладок, кроме первых двух? С помощью 3 блоков сейчас закрывается, но хотелось бы, что бы шаблон был поменьше)
Tab[] tabs = instance.AllTabs;
for (int i = 2; i < tabs.Count(); i++)
tabs[i].Close();
под этот вопрос вам лучше создать отдельную тему,к этой ветке он отношения не имеет.во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
Перед открытием вкладки сохраняете в переменную текущее время, и когда понаоткрывали вкладок, сравниваете по каждой время открытия с текущим, там где прошло достаточно, закрываете вкладку.во вкладке с номером 1 (имя вкладки каждый раз может отличаться) открывается ролик Ютуб, затем открываются другие вкладки и т.д. Как сделать, чтобы дойдя до определенного действия в шаблоне, сравнивало сколько времени проигрывается ролик или хотя бы сколько времени открыта вкладка с необходимым временем (оно прописывается в переменной time). Если время проигрывания ролика (время открытия вкладки) больше заданного времени time, то выполнения шаблона продолжается, а если меньше, то идет пауза на недостающее время.
Как указать время ожидания с помощью переменной. И как указать вместо имени вкладки значение переменной, которая меняется?
System.Threading.Tasks.Task.Run(() => {
Thread.Sleep(Convert.ToInt32(project.Variables["peremennaya_vremya"].Value)); // Сколько секунд ждать
instance.GetTabByAddress(project.Variables["peremennaya_tab2"].Value).Close(); // Какой таб закрыть
//закрыть все вкладки кроме указанных (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();
}
Если, это все замены, которые вы внесли, то ошибка из-за размера массива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(); }
только код другой)
Рабочий код, оставляет 1 вкладку, по имени "home"[ i ]- Не указал в коде выше
string[] tabs = { "home" };
Tab[] allTabs = instance.AllTabs;
for (int i = 0; i < allTabs.Count(); i++) {
if (allTabs[i].Name != tabs[0])
allTabs[i].Close();
}
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();
}