在Python浏览器自动化中使用Selenium处理多个操作的最佳方法是什么?

时间:2012-11-22 03:00:11

标签: python selenium

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

对于小奖品,我有足够的门票,我可以在他们来时和他们的计时器用完之前向他们出价。然而,对于大奖,我获得门票的费率不足以竞标小奖品,然后当计时器接近零时突然竞标大奖。由于您可以在同一奖品上多次出价,我决定要逐步提高大奖,并且只使用我的一部分门票,直到我达到我的“目标”金额的门票。

问题在于,虽然我有一个连续运行的功能,对小奖品进行出价(每次出价后页面刷新,所有出价都在同一页面上),我还想设置某种计时器我的程序告诉它每次(例如2分钟)对大奖的出价,直到达到我要为该奖项出价的票数。那么我应该为大奖开辟一个带有selenium的新浏览器窗口吗?或者我应该尝试以某种方式适应较大奖品的竞标并使用相同的浏览器窗口?

我希望能够为“简化”目的做第二次,但我不确定如何通过对小奖的随机竞价来适应大奖的定时竞标。

感谢。

1 个答案:

答案 0 :(得分:0)

以下是C#中的一个小代码段,您可以在其中设置出价间隔/剩余时间。

一旦时间/间隔完成,它会触发一个事件 * 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.

    }

我希望这有助于......一切顺利:)