我正在编写(硒(单元测试,并且正在遇到无效问题。此代码以前正在运行和工作,但是现在正在失败,而不是将值输入所需字段。谁能给我一些有关可能出错的建议?
单元测试目标:导航Web服务UI并输入应显示结果的值。
dmpage.cs
using System;
using OpenQA.Selenium;
namespace Framework.WebServicePages
{
public class DMPage
{
public static void GoTo()
{
WebServiceDriver.Instance.Navigate().GoToUrl("URL");
}
public static void Wait()
{
WebServiceDriver.Instance.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
}
public static string IsAt
{
get
{
var title = WebServiceDriver.Instance.FindElement(By.XPath(""));
if (title != null)
return title.GetAttribute("Title");
return string.Empty;
}
}
public static ValueCommand EnterValue(string valuenum)
{
return new ValueCommand();
}
}
public class ValueCommand
{
private readonly string valuenum;
public ValueCommand()
{
this.valuenum = valuenum;
}
public void SearchValue()
{
var inputValue = WebServiceDriver.Instance.FindElement(By.XPath(""));
inputValue.SendKeys(valuenum);
var submitValue = WebServiceDriver.Instance.FindElement(By.XPath(""));
submitValue.Click();
}
}
}
dmtests.cs
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using ValueMedAutomation.WebServicePages;
namespace Tests.WebServiceTestScripts
{
[TestClass]
public class DMTests
{
[TestInitialize]
public void Init()
{
WebServiceDriver.Initialize();
}
[TestMethod]
public void DM_Meds()
{
DMPage.GoTo();
DMPage.Wait();
DMPage.EnterValue("123456789").SearchValue();
DMPage.Wait();
Assert.AreEqual(DMPage.IsAt, "TEST", "Value failed.");
}
[TestCleanup]
public void Cleanup()
{
WebServiceDriver.Close();
}
}
}
运行单元测试后的错误
- 消息:测试方法tests.webserviceTestscripts.dmtests.dm_med投掷例外:
System.ArgumentNullexception:文本不能为空参数名称:文字 - stacktrace:
remotewebelement.sendkeys(字符串文本(
valueCommand.SearchValue((
dmtests.dm_med(( - CS1717分配给同一变量;你是说要分配其他东西吗?
调试时错误
运行调试时以下几行断开:
L41 this.valuenum = valuenum;
L47 inputValue.SendKeys(valuenum);
您忘了在ValueCommand
类的构造函数中传递string valuenum
:
在DMPage
类中:
public static ValueCommand EnterValue(string valuenum)
{
return new ValueCommand(valuenum);
}
在ValueCommand
类中:
public ValueCommand(string valuenum)
{
this.valuenum = valuenum;
}