add projects
Gitea Actions Demo / Explore-Gitea-Actions (push) Successful in 13s

This commit is contained in:
2026-03-18 15:37:59 +03:00
parent ed55e77e98
commit bf51924adb
158 changed files with 82479 additions and 1 deletions
+144
View File
@@ -0,0 +1,144 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using OpenQA.Selenium;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Firefox;
namespace LC_ConfigCamer
{
internal class Selenium_Work
{
public string[] Ip_list { get; set; }
public string Old_pass { get; set; }
public string New_Pass { get; set; }
FirefoxDriver driver;
public Selenium_Work(string[] ip, string old_pass, string new_pass)
{
Ip_list = ip;
Old_pass = old_pass;
New_Pass = new_pass;
}
public async void Start()
{
FirefoxOptions options = new FirefoxOptions();
//options.AddArgument("-headless");
FirefoxDriverService service = FirefoxDriverService.CreateDefaultService();
service.HideCommandPromptWindow = true;
driver = new FirefoxDriver(Environment.CurrentDirectory, options);
for (int i = 0; i < Ip_list.Count(); i++)
{
driver.Navigate().GoToUrl($"http://{Ip_list[i]}");
await Form1.Log_add($"Открыл Web-интерфейс камеры {Ip_list[i]}");
Thread.Sleep(500);
#region Ввод логин пароль
driver.FindElement(By.XPath("//*[@id=\"username\"]")).SendKeys("admin");
driver.FindElement(By.XPath("//*[@id='password']")).SendKeys(Old_pass);
try
{
driver.FindElement(By.XPath("//*[@id=\"login\"]/table/tbody/tr/td[2]/div/div[5]/button")).Click();
}
catch (Exception)
{
MessageBox.Show("Не нашел XPath кнопки входа");
}
await Form1.Log_add($"Ввел логин и пароль");
Thread.Sleep(2000);
#endregion
if (CheckXPath("/html/body/div[2]/table/tbody/tr/td[2]/div/div[2]/div/label"))
{
await Form1.Log_add($"Не правильный пароль к {Ip_list[i]}", true);
await Form1.Log_add($"===================================", true);
continue;
}
else
{
#region Переход в конфигурацию
driver.Navigate().GoToUrl($"http://{Ip_list[i]}/doc/page/config.asp");
await Form1.Log_add($"Перешел в режим конфигурации");
Thread.Sleep(1000);
#endregion
#region Выбрать пользователя и нажать ИЗМЕНИТЬ
driver.FindElement(By.Name("user")).Click();
await Form1.Log_add($"Перешел в настройки пользователей");
Thread.Sleep(1000);
if (CheckXPath("/html/body/div[4]/div[1]/div/div/div[1]/div/div[1]/div[2]/div/div[2]/div"))
driver.FindElement(By.XPath("/html/body/div[4]/div[1]/div/div/div[1]/div/div[1]/div[2]/div/div[2]/div")).Click();
else
MessageBox.Show("Ткнуть на строку admin");
Thread.Sleep(500);
if (CheckXPath("/html/body/div[4]/div[1]/div/div/div[1]/div/div[1]/div[1]/span[2]/button[2]"))
driver.FindElement(By.XPath("/html/body/div[4]/div[1]/div/div/div[1]/div/div[1]/div[1]/span[2]/button[2]")).Click();
//else if (await CheckXPath("/html/body/div[3]/div[1]/div/div/div[1]/div/div/div[1]/span[2]/button[2]"))
// driver.FindElement(By.XPath("/html/body/div[4]/div[1]/div/div/div[1]/div/div[1]/div[1]/span[2]/button[3]")).Click();
//else if (await CheckXPath("/html/body/div[4]/div[1]/div/div/div[1]/div/div[1]/div[1]/span[2]/button[2]"))
// driver.FindElement(By.XPath("/html/body/div[4]/div[1]/div/div/div[1]/div/div[1]/div[1]/span[2]/button[3]")).Click();
else
MessageBox.Show("Ткнуть изменить");
await Form1.Log_add($"Открыл изменение настроек пользователя");
Thread.Sleep(1000);
#endregion
#region Изменение пароля
if (CheckXPath("/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div/div[1]/div[4]/div[1]/span[2]/input"))
{
var el = driver.FindElement(By.XPath("/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div/div[1]/div[4]/div[1]/span[2]/input"));
el.Clear(); el.SendKeys(Old_pass);
await Form1.Log_add($"Ввел старый пароль");
}
else
{
MessageBox.Show("Ввод старого пароля");
}
if (CheckXPath("/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div/div[1]/div[4]/div[2]/span[2]/input"))
{
var el = driver.FindElement(By.XPath("/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div/div[1]/div[4]/div[2]/span[2]/input"));
el.Clear(); el.SendKeys(New_Pass);
el = driver.FindElement(By.XPath("/html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[2]/td[2]/div/div[1]/div[4]/div[4]/span[2]/input"));
el.Clear(); el.SendKeys(New_Pass);
await Form1.Log_add($"Ввел 2 раза новый пароль");
}
else
{
MessageBox.Show("Ввод нового пароля");
}
driver.FindElement(By.XPath("//html/body/div[1]/div/table/tbody/tr[2]/td[2]/div/table/tbody/tr[3]/td/div/button[1]")).Click();
await Form1.Log_add($"Сохранил изменения.");
await Form1.Log_add($"===================================");
#endregion
continue;
}
}
driver.Quit();
}
private bool CheckXPath(string xPath)
{
try
{
_ = driver.FindElement(By.XPath(xPath));
return true;
}
catch (Exception)
{
return false;
}
}
}
}