Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 10

Ограничение цикла значением из textbox

11.10.2020, 21:51. Показов 2064. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
public partial class Form1 : Form
      
    {
       
        
            public static string loginUser;
        public static string passUser;
        public static string collow;
        int i = Convert.ToInt32(collow);
        
        
        IWebDriver Browser;
        public Form1()
            
        {
            InitializeComponent();
            backgroundWorker1.WorkerReportsProgress = true;
            backgroundWorker1.WorkerSupportsCancellation = true;
            
        }
 
        
       
        private void button2_Click(object sender, EventArgs e)
        {
          
            backgroundWorker1.RunWorkerAsync();
 
 
        }
 
        private void BackgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            throw new NotImplementedException();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Browser = new OpenQA.Selenium.Chrome.ChromeDriver();
            
            System.Threading.Thread.Sleep(500);
    
            Browser.Navigate().GoToUrl("https://www.instagram.com/");
            Browser.Manage().Window.Maximize();
            IWebElement login = Browser.FindElement(By.Name("username"));
            login.SendKeys(loginUser);
            IWebElement password = Browser.FindElement(By.Name("password"));
            password.SendKeys(passUser);
            IWebElement button1 = Browser.FindElement(By.XPath(" /html/body/div[1]/section/main/article/div[2]/div[1]/div/form/div/div[3]/button/div ")); ;
            button1.Click();
 
        }
       
        
        private void button3_Click(object sender, EventArgs e)
        {
 
            backgroundWorker1.CancelAsync();
 
        }
 
       
 
        private void TaskAsync(object sender, DoWorkEventArgs e)
        {
            
            for ( i = 1; i < 1000; i++)
 
            {
 
            marker:
                if (backgroundWorker1.CancellationPending) return;
                try
                {
                    IWebElement button = Browser.FindElement(By.XPath("/html/body/div[4]/div/div/div[2]/ul/div/li[" + i + "]/div/div[3]/button"));
                    string login1 = textBox1.Text;
                    System.Threading.Thread.Sleep(6000);
                    button.Click();
                    try
                    {
 
 
                        if (button.GetAttribute("XPath") == "/html/body/div[5]/div/div/div/div[3]/button[2]") ;
 
                        {
                            IWebElement button23 = Browser.FindElement(By.XPath("/html/body/div[5]/div/div/div/div[3]/button[2]"));
                            System.Threading.Thread.Sleep(2000);
                            button23.Click();
 
                        }
                        Actions buttonclick2 = new Actions(Browser);
                        buttonclick2.MoveToElement(button).Click().Perform();
 
                    }
                    catch (StaleElementReferenceException)
                    {
                        i++;
                        goto marker;
                    }
 
 
 
 
                }
                catch (NoSuchElementException)
                {
                    i++;
                    goto marker;
 
 
 
                }
 
 
            }
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            sree:            
            for (int a = 1; a < 1000; a++)
                try
                {
 
                
                try
                {
 
                
            {
                IWebElement button2 = Browser.FindElement(By.XPath("/html/body/div[4]/div/div/div[2]/ul/div/li["+ a +"]/div/div[3]/button"));
                System.Threading.Thread.Sleep(3000);
                button2.Click();
                            
                        if (button2.GetAttribute("XPath") == "/html/body/div[5]/div/div/div/div[3]/button[2]") ;
 
                        {
                            IWebElement button23 = Browser.FindElement(By.XPath("/html/body/div[5]/div/div/div/div[3]/button[1]"));
                            System.Threading.Thread.Sleep(2000);
                            button23.Click();
 
                        }
                            Actions buttonclick = new Actions(Browser);
                            buttonclick.MoveToElement(button2).Click().Perform();
                    }
 
            }
            catch (NoSuchElementException) 
            {
                    a++;
                    goto sree;
            }
 
                }
                catch (StaleElementReferenceException)
                {
                    a++;
                    goto sree;
                }
    }
 
        private void label1_Click(object sender, EventArgs e)
        {
            
        }
 
        
        private void textBox1_TextChanged_1(object sender, EventArgs e)
        {
            loginUser = textBox1.Text;
        }
 
        private void textBox2_TextChanged(object sender, EventArgs e)
        {
            passUser = textBox2.Text;
        }
 
        private void textBox3_TextChanged(object sender, EventArgs e)
        {
            collow = textBox3.Text;
 
        }
Всем привет!Заранее говорю, в программирование я недавно , так что сильно не ругайте)Я делаю скрипт для накрутки в инсте с помощью библиотеки SeleniumWebDriver.У меня возникла проблема с TextBox.У меня программа ищет кнопки "Подписаться" на сайте и нажимает на них.(Все это вы можете увидеть в цикле for) и это будет продолжаться до тех пор, пока я сам принудительно не прерву цикл.А мне нужно с помощью textbox3 сделать так , чтобы пользователь в gui оформление мог в textbox вбивать определенное значение, допустим 30.И цикл будет искать 30 кнопок и нажимать на них, после чего автоматически прервется.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2020, 21:51
Ответы с готовыми решениями:

Сравнения цикла с увеличивающимся значением
Всем привет, вопрос как сравнить значения цикла с значением в автоувелечении. Все адреса которые находятся в цикле...

Неверное ограничение работы оператора цикла for
Здравствуйте, хочу спросить, почему в СLR (Windows Forms) C++ не работает цикл for? Точнее он то работает, но цикл бесконечный, не смотря...

Ограничение ввода в textBox
Здравствуйте, подскажите пожалуйста, как можно ограничить количество вводимых символов в textBox к примеру 6. Но так чтоб не больше и не...

8
Добрый пёс
 Аватар для Blasphemie
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
11.10.2020, 23:34
C#
1
int _limit = Int32.Parse(textBox3.Text);
1
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 10
12.10.2020, 14:54  [ТС]
Не помогло, цикл так же продолжает работать до того момента, пока я сам его принудительно не остановлю.Может не туда вписал, или что то не так сделал? Буду благодарен если поможете!
0
Добрый пёс
 Аватар для Blasphemie
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
12.10.2020, 15:52
Лучший ответ Сообщение было отмечено krash21 как решение

Решение

Цитата Сообщение от krash21 Посмотреть сообщение
Не помогло, цикл так же продолжает работать до того момента
Тут всего два цикла, оба до 999.
Тот из них, который надо ограничить и надо ограничивать, как это ни банально звучит. Или оба, разработчику видней. Всю логику программы для этого изучать необязательно.
C#
1
2
3
4
5
int _limit = Int32.Parse(textBox3.Text);
 
for (int a = 1; a <= _limit; a++)
{
}
Добавлено через 10 минут

Не по теме:

А за применение оператора goto по моему мнению следует приговаривать к ежедневному распутыванию стольких пар 2-метровых тоненьких наушников, столько раз оный оператор был в коде применен.

1
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 10
12.10.2020, 17:49  [ТС]
Спасибо большое, сработало.Только теперь он почему то начал на один элемент по 2 раза нажимать и только после этого переходит на следующий.
0
Добрый пёс
 Аватар для Blasphemie
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
12.10.2020, 19:17
Цитата Сообщение от krash21 Посмотреть сообщение
Только теперь он почему то начал на один элемент по 2 раза нажимать
Так ничего удивительного. По исключениям цикл начинается сначала.
Я вообще поражаюсь, как это скомпилировалось, нельзя дополнительно манипулировать переменной итерации внутри цикла.


C#
1
2
3
4
5
6
7
8
9
10
11
12
for (int a = 1; a < 1000; a++)
                try
                {
 
//               ************************** 
               
                }
            catch (NoSuchElementException) 
            {
                    a++; //вот это я имею в виду
                    goto sree; //а это приводит в начало цикла, и он опять с 1 крутится.
            }
0
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 10
12.10.2020, 20:12  [ТС]
Я наверное уже надоел,но как можно исправить это?)
0
Добрый пёс
 Аватар для Blasphemie
120 / 86 / 37
Регистрация: 13.09.2020
Сообщений: 254
12.10.2020, 20:30
Лучший ответ Сообщение было отмечено krash21 как решение

Решение

Убрать все goto и воспользоваться волшенбным словом continue. Оно прерывает текущую итерацию и переходит к следующей.

C#
1
2
3
4
5
6
7
8
catch (NoSuchElementException) 
            {
/*
                    a++; //вот это я имею в виду
                    goto sree; //а это приводит в начало цикла, и он опять с 1 крутится.
*/
                    continue;
            }
C#
1
2
3
4
5
6
7
8
catch (NoSuchElementException)
                {
/*
                    i++;
                    goto marker;
*/
                    continue;
                }
0
0 / 0 / 0
Регистрация: 03.10.2020
Сообщений: 10
12.10.2020, 20:38  [ТС]
Cпасибо тебе огромное, я просто пытался разобраться с этим 2 дня, а все оказалось так просто!Надеюсь эта тема еще кому-нибудь да и поможет!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2020, 20:38
Помогаю со студенческими работами здесь

Ограничение строк TextBox
Добрый день Хочу сделать вот что Есть TextBox с включенным Multiline Я хочу чтобы в каждой строке могло поместиться максимум 20...

Ограничение ввода в TextBox
помогите как-то переделать это под wpf private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { char c =...

Ограничение ввода в textbox
Доброго времени суток! Задача такая есть textbox нужно ограничить в него ввод только цифрами от 00 до 23 кто-то может предложить в...

Ограничение ввода TextBox
Помогите, пожалуйста, с реализацией. Хотелось бы ограничить ввод в textbox числами в диапозоне 0-100.

Ограничение ввода в TextBox
Мне необходимо,что бы в TextBox можно было вводить только цифры,(+,-)1 раз в начале и точку,разделяющую целую и дробную часть.И еще...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru