关于按钮点击的非常具体的案例

本文关键字:非常 案例 于按钮 按钮 | 更新日期: 2023-09-27 18:14:29

我正在创建实用控制台应用程序,以帮助我在我的大学注册某些课程的过程中。到目前为止,我已经下载了网站的内容,并经常检查具体的变化,这给了我一个信息,当给定的课程是满的或可用的。像这样:

WebRequest request2 = WebRequest.Create("https://usosweb.umk.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=0600-OG-ChH");
request2.Method = "GET";
WebResponse response2 = request2.GetResponse();
Stream stream2 = response2.GetResponseStream();
StreamReader reader2 = new StreamReader(stream2);
string content_2 = reader2.ReadToEnd();
string drugi = getBetween(content_2, @"Stan zapełnienia grup:</b>
        <b>", "</b> (zarejestrowanych/limit)");
reader2.Close();
response2.Close();
if (drugi != pierwszy)
{
    Console.WriteLine("Rejestracja!");
    Console.Beep(3200, 900);
    System.Diagnostics.Process.Start("https://usosweb.umk.pl/kontroler.php?_action=katalog2/przedmioty/pokazPrzedmiot&prz_kod=0600-OG-ChH");
    pierwszy = drugi;
}

问题是,它仍然需要我的充分关注,因为我使它只打开网站与注册按钮上,我的目标是使它实际上点击它自动后插槽打开。

注意事项:

  • 我必须登录那个网站才能注册课程
  • https://i.stack.imgur.com/xS0C0.jpg <-这就是该按钮的编码方式。每次刷新
  • 时,chain_函数的命名都不同。
  • http://i.imgur.com/tGX5kmy.jpg <-这就是注册面板的样子。理想情况下,我想要一个网站在默认浏览器打开(或缓存的地方,所以我已经登录),并自动按下该按钮,因为它不需要额外的确认。上面的代码中包含了我所在大学的一个网站的链接,因此您可以额外了解如何编码按钮以及如何解决这种情况。

毕竟,这可能吗?我能通过编码吗?我使用的是c#,但如果其他语言的代码片段更容易或可能的话,也可以放在其中。

关于按钮点击的非常具体的案例

我认为对于这种任务自动化Selenium WebDriver是最好的工具

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using OpenQA.Selenium.Chrome;

namespace WEBDRIVER
{
  class Program
  {
    static void Main(string[] args)
    {
      IWebDriver driver = new ChromeDriver();
      driver.Navigate().GoToUrl("http://www.google.com/");
      IWebElement query = driver.FindElement(By.Name("q"));
      query.SendKeys("banana");
      query.Submit();
      WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
      wait.Until((d) => { return d.Title.ToLower().StartsWith("banana"); });
      System.Console.WriteLine("Page title is: " + driver.Title);
      driver.Quit();
    }
  }
}