我正在使用specflow,并希望有一个存储库来存储我所有的xpath,以使其更清晰、更易于理解。所以我拥有的回购协议是
using OpenQA.Selenium;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SpecFlowProject1.Repository
{
public class Repository
{
public static By AcceptCookies = By.XPath(".//button[@id='onetrust-accept-btn-handler']");
}
}
在步骤定义文件中,我尝试使用以下命令单击该元素
[Given(@"Navigate to morrisons")]
public void GivenNavigateToMorrisons()
{
driver.Url = ("https://morrisons.com");
//Accept cookies
driver.FindElement(AcceptCookies).Click();
}
它给出的错误是名称 AccceptCookies 在当前上下文中不存在
我尝试导入 Repository 类,但这不起作用。我在这里缺少什么?
谢谢
这是一个基本的 C# 语言问题。
您需要在属性名称之前指定类名称:
driver.FindElement(Repository.AcceptCookies).Click();
如果仍然出现编译器错误,请将其添加到 C# 文件的顶部:
using SpecFlowProject1.Repository;
更多信息: