c# - Selenium - 下拉框查询

标签 c# selenium webdriver selector

我目前正在使用 Selenium (c#) 来自动化网格功能,该功能将营销事件添加到表中。

因此,在选择整数的随机下拉值之前。我需要输入一个campaignName 和一个campaignId。我有一个下拉选项,它允许我添加 x 倍的 CampaignName,从而增加 CampaignName+1,因此,如果我在下拉菜单中选择 76,我将获得 CampaignName+76,即 CampaignName76。

不,我有一个预先执行的方法,它会生成一个随机值。例如52。现在该值存储在字段 _NumberValue 中。然后创建 52 个 CampaignName。

这是_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");

等等/

有人可以推荐一种比仅使用条件流更简洁的方法吗?

看起来很糟糕,但我很快就做到了!

最佳答案

你可以试试这个:

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());
}

关于c# - Selenium - 下拉框查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34795918/

相关文章:

java - 如何在 testNG 类之前实例化对象?

c# - 在 C# 中的 Selenium WebDriver 中使用特定的 Firefox 配置文件

c# - 使用C#模拟确认javascript弹出窗口

c# - C# 中的 Ironpython 导入模块导入 csv 模块时出错

c# - 保存到元组的逻辑问题

c# - 获取 .NET Core JsonSerializer 以序列化私有(private)成员

python - 无法将下载的文件存储在相关文件夹中

c# - asp.net mvc View 页面可以有一个 webform 控件吗?

python - selenium.common.exceptions.WebDriverException : Message: unknown error: Failed to create Chrome process with ChromeDriver Chrome with Selenium Python

multithreading - 在Logback中记录并行线程