我目前正在使用 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/