【问题标题】:Selenium - drop down box querySelenium - 下拉框查询
【发布时间】:2016-01-15 01:55:16
【问题描述】:

我目前正在使用 Selenium (c#) 来自动化网格功能,该功能将广告系列添加到表格中。

所以在选择一个随机的整数下拉值之前。我需要输入一个campaignName 和一个campaignId。我有一个下拉选项,可以让我添加 x 倍的活动名称,这会增加活动名称+1,因此如果我在下拉菜单中选择 76,我将拥有活动名称+76,因此活动名称76。

不,我有一个预先执行的方法,这会生成一个随机值。以 52 为例。现在该值存储在字段_NumberValue 中。然后创建了 52 个活动名称。

这是 _NumberValue 稍后在另一个函数中引用,现在选项下拉增量为 10、20、30、40。

如果我有 27,我需要选择器在菜单上选择 30。这将显示行的计数,我断言它与 _NumberValue 和 CampaignNumbers 匹配。

有没有比仅使用条件流更简单的方法来编写它?

   private static void DisplayCorrectNumberOfRows(IWebDriver driver)
            {
                var value = CampaignBulkValue;
                WaitElements.ElementExists(By.XPath("//*[@id='PageSizeDropdown_popup']"));

                if (value <= 10)
                {
                    LinkHelper.ClickLink(By.Id("PageSizeDropdown"));
                    TextBoxHelper.InputText(By.Id("PageSizeDropdown"), "10"); 
else if (value == 11 || value <= 20)
            {
                LinkHelper.ClickLink(By.Id("PageSizeDropdown"));
                TextBoxHelper.InputText(By.Id("PageSizeDropdown"), "20");

等/

谁能推荐一种更简洁的方法,然后只使用条件流?

看起来很恶心,但我很快就做到了!

【问题讨论】:

    标签: c# selenium webdriver selector


    【解决方案1】:

    你可以试试这个:

    private static void DisplayCorrectNumberOfRows(IWebDriver driver)
    {
        var value = CampaignBulkValue;
        WaitElements.ElementExists(By.XPath("//*[@id='PageSizeDropdown_popup']"));
    
        // maybe you want to throw an exception here when value is 0
        // or you can ignore it and set it as 10 :
        //  var pageSize = Math.Min(Math.Ceiling(value / 10.0) * 10, 10);
        var pageSize = Math.Ceiling(value / 10.0) * 10
        LinkHelper.ClickLink(By.Id("PageSizeDropdown"));
        TextBoxHelper.InputText(By.Id("PageSizeDropdown"), pageSize .ToString());
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2012-11-04
      • 1970-01-01
      • 2022-08-18
      • 2023-03-14
      • 2013-06-09
      相关资源
      最近更新 更多