我是Selenium的新手。我有一个下拉字段,始终会选择某些内容,并且正在寻找一种方法来说明是否运行测试,并且下拉菜单选择了一个值,下次运行测试时,我希望网络驱动程序知道先前的值在那里然后将其替换为新值。这是我写的,但是不起作用:
IWebElement element = _driver.FindElement(By.Name("requestedby"));
var selectElement = new SelectElement(element);
if (_driver.FindElement(By.Name("requestedby")).Equals("ALLCAPS"))
{
new SelectElement(element).SelectByValue("NOCAP");
}
else if (_driver.FindElement(By.Name("requestedby")).Equals("NOCAP"))
{
new SelectElement(element).SelectByValue("ALLCAPS");
}
else
{
new SelectElement(element).SelectByValue("NOCAP");
}
//_driver.FindElement(By.Name("$btn_save")).Click();
答案 0 :(得分:1)
要获取当前值,请使用.SelectedOption.GetAttribute("value")
IWebElement element = _driver.FindElement(By.Name("requestedby"));
var selectElement = new SelectElement(element);
var currentValue = selectElement.SelectedOption.GetAttribute("value");
// for current Text
// var currentText = selectElement.SelectedOption.Text;
if (currentValue.Equals("NOCAP"))
{
selectElement.SelectByValue("ALLCAPS");
}
else
{
selectElement.SelectByValue("NOCAP");
}
答案 1 :(得分:0)
您可以浏览此tutorial,下面粘贴示例代码以供参考。
using System;
namespace Conditional
{
class IfElseStatement
{
public static void Main(string[] args)
{
int number = 12;
if (number < 5)
{
Console.WriteLine("{0} is less than 5", number);
}
else
{
Console.WriteLine("{0} is greater than or equal to 5", number);
}
Console.WriteLine("This statement is always executed.");
}
}
}