我是C#新手,我正在使用specflow
我正在自动化一个场景,其中需要检查多个元素,如果它们是启用的。这些元素来自页面的不同部分,具有不同的XPath。
我想的方法是
foreach (webelement e in list)
{
element.isEnabled();
}
Scenario: Validate G Functionality
Given Open URL
When verifies fields
| Gmail |
| Images |
[When(@"verifies fields")]
public void WhenVerifiesFields(Table table)
{
for(int i=0;i<=table.Rows.Count;i++)
{
IWebElement ew= table.Rows[i] as IWebElement;
Assert.False(ew.Enabled);
}
页面类:
[FindsBy(How = How.LinkText, Using = "Gmail")]
private IWebElement Gmail;
[FindsBy(How = How.LinkText, Using = "Images")]
private IWebElement Images;
我得到以下错误
Validate G Functionality [FAIL]
[xUnit.net 00:00:06.38] System.NullReferenceException : Object reference not set to an instance of an object.
[xUnit.net 00:00:06.38] Stack Trace:
[xUnit.net 00:00:06.38] /*line pointed here is
ew.enabled*/C:\Users\StepDefinition\TestStepsOne.cs(53,0): at BillTrackerAutomation.StepDefinition.TestStepsOne.WhenVerifiesFields(Table table)
[xUnit.net 00:00:06.38] at lambda_method(Closure , IContextManager , Table )
您可以通过[StepArgumentTransformation]
实现这一点
Scenario Outline: examples with step argument
Given we have '<Webelements>'
Examples:
| Webelements |
| Gmail |
步骤定义如下:
using TechTalk.SpecFlow;
using OpenQA.Selenium.Chrome;
using OpenQA.Selenium.Support.UI;
using NUnit.Framework;
[Binding]
public class Browser
{
private readonly BrowserDriver _browserDriver;
public static OpenQA.Selenium.IWebDriver driver ;
public Browser(BrowserDriver browserDriver, FeatureContext featureContext)
{
_browserDriver = browserDriver; //your chrome driver
driver = _browserDriver._driver;
_featureContext = featureContext;
_featureContext.Add("driver", driver);
}
[Given(@"we have '(.*)'")]
public void webelements(ChromeWebElement o)
{
Assert.False(o.Displayed);
}
[StepArgumentTransformation]
public ChromeWebElement convertToWebElement(string c)
{
ChromeDriver parent = _featureContext.Get<ChromeDriver>("driver");
return new ChromeWebElement(parent, c);
}
显然,您得到的结果元素没有附加到页面文档
,因为我只是使用了Gmail
进行测试
在我的Spring Boot项目中,我有两个类(实体和模型) 在模型中有一个列表 :
本文向大家介绍C#将DataTable转换成list的方法,包括了C#将DataTable转换成list的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#将DataTable转换成list及数据分页的方法。分享给大家供大家参考。具体如下: 将一个DataTable转换成一个List 首先定义一个接收DataTable字段列的类 。类的字段与DataTable的列字段一致 希望本文所
问题内容: 我将类型为DataTable的对象保存到SQL 2005数据库中的类型为varbinary的字段中。我想找回它,但无法键入强制转换。这就是我保存它的方式。 “ dt”是DataTable对象实例。 问题答案: 您在说的是二进制序列化和反序列化。也许这会有所帮助。
问题内容: 我有如下的Json字符串 我想将Json字符串转换为以下类 我的反序列化代码是 但是我在序列化后得到空值,我该如何解决呢? 问题答案: 正如其他人已经指出的那样,未获得预期结果的原因是因为JSON与尝试反序列化的类结构不匹配。您需要更改JSON或更改类。由于其他人已经展示了如何更改JSON,因此在这里我将采用相反的方法。 为了与您在问题中发布的JSON相匹配,您的类应按照以下定义。注意
问题内容: 我正在寻找C#代码以将HTML文档转换为纯文本。 我不是在寻找简单的标记剥离方法,而是会输出纯文本并 合理 保留原始布局的东西。 输出应如下所示: W3C的Html2Txt 我看过HTML Agility Pack,但我认为这不是我所需要的。有人还有其他建议吗? 编辑: 我只是从CodePlex下载HTML Agility Pack ,并运行了Html2Txt项目。真令人失望(至少是将
本文向大家介绍C#中将DataTable转换成CSV文件的方法,包括了C#中将DataTable转换成CSV文件的方法的使用技巧和注意事项,需要的朋友参考一下 DataTable用于在.net项目中,用于缓存数据,DataTable表示内存中数据的一个表。CSV文件最早用在简单的数据库里,由于其格式简单,并具备很强的开放性,所以起初被扫图家用作自己图集的标记。CSV文件是个纯文本文件,每一行表示一