我目前正在使用Selenium(c#)自动化网格功能,这会将广告系列添加到表格中。
因此,在选择整数中的随机下拉值之前。我需要输入campaignName和campaignId。我有一个下拉选项,我可以将campaignName的x倍添加到campaignName + 1的增量中,所以如果我在下拉菜单中选择76,我会有campaignName + 76所以campaignName76。
不,我有一个先前执行的方法,这会生成一个随机值。例如52。现在,此值存储在_NumberValue字段中。然后创建了52个campaignNames。
这是_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");
等/
有人可以推荐一种更简洁的方法,然后只使用条件流吗?
看起来很糟糕,但我很快就这样做了!
答案 0 :(得分:2)
你可以试试这个:
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());
}