【问题标题】:What would be the best way to handle multiple actions in Python browser automation (with Selenium)?在 Python 浏览器自动化(使用 Selenium)中处理多个操作的最佳方法是什么?
【发布时间】:2012-11-22 03:00:11
【问题描述】:

我正在用 python 编写一个程序,它使用 selenium 在网站上自动为我出价。在网站的投标部分,他们经常列出奖品和他们的“剩余时间”倒计时。有小奖,也有大奖。较大的奖品需要更多的彩票才能中奖,因为有更多的人想要参与其中(这取决于概率和您进入的彩票数量)。

对于小奖品,我有足够的门票,我可以在它们到来时和它们的计时器用完之前竞标它们。但是,对于大奖,我中奖的几率不足以中小奖,然后在计时器接近零时突然中奖。由于您可以多次竞标同一个奖品,因此我决定要逐步竞标大奖品,并且只使用我的一部分门票,直到我达到该奖品的“目标”门票数量。

问题是,虽然我有一个连续运行的功能,对小奖品出价(每次出价后页面刷新,所有出价都在同一页面上),但我还想在其中设置某种计时器我的程序告诉它每隔 2 分钟就一个大奖出价,直到达到我想为该奖项出价的门票数量。那么我应该打开一个带有硒的新浏览器窗口来获得大奖吗?还是我应该尝试以某种方式将大奖的竞标与较小的奖相匹配并使用相同的浏览器窗口?

出于“简化”的目的,我有点希望能够做第二个,但我不确定如何适应大奖的定时竞标和小奖的随机竞标。

谢谢。

【问题讨论】:

  • 请用显示一些代码 sn-p 来解释你的问题并告诉你的问题?

标签: python selenium


【解决方案1】:

这是一个 C# 中的小代码 sn-p,您可以在其中设置投标间隔/剩余时间。

一旦时间/间隔完成,它会触发一个事件 *LargePrize_Tick*,该事件反过来会竞标大奖,直到您的票用完为止。

static void Timer_Ticking(int Interval_in_Secs)
    {
        Timer timer = new Timer(); 
        timer.Interval = (1000) * (1);              // Timer will tick evert second
        timer.Enabled = true;                       // Enable the timer
        timer.Start();                              // Start the timer
        timer.Interval = Interval_in_Secs*1000;    //Equvivalent in milliseconds.
        System.Threading.Thread.Sleep(TimeSpan.FromSeconds(Interval_in_Secs));
        timer.Elapsed += new ElapsedEventHandler(LargePrize_Tick);
    }

    static void LargePrize_Tick(object sender, EventArgs e)
    {
        Console.WriteLine("Done with interval ");

        //Open Browsers
        //Bid for Prize till ticket is Available
        //Close browser after bidding.

    }

我希望这会有所帮助....一切顺利:)

【讨论】:

    猜你喜欢
    • 2018-02-14
    • 2011-02-26
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2016-05-26
    相关资源
    最近更新 更多