当我尝试查找元素时,为什么我在存储库中的命名 xpath 在另一个类中未被识别?

问题描述 投票:0回答:1

我正在使用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# selenium-webdriver specflow
1个回答
0
投票

这是一个基本的 C# 语言问题。

您需要在属性名称之前指定类名称:

driver.FindElement(Repository.AcceptCookies).Click();

如果仍然出现编译器错误,请将其添加到 C# 文件的顶部:

using SpecFlowProject1.Repository;

更多信息:

© www.soinside.com 2019 - 2024. All rights reserved.