gpt4 book ai didi

c# - 使用 net core 的 PageFactory 是否有任何替代方案

转载 作者:行者123 更新时间:2023-11-30 19:36:17 26 4
gpt4 key购买 nike

我正在使用 Selenium v​​3.6.0 和 .NET Core 2.0,以下代码在 PageFactory.InitElements 上给我一个错误,说它在当前上下文中不存在。

using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;

namespace Example
{
public class Form
{
[FindsBy(How = How.Name, Using = "Filter")] // This does exist in current context using .NET Core
public IWebElement Filter { get; set; }

[FindsBy(How = How.TagName, Using = "Button")]
public IWebElement Button;

public Form(IWebDriver driver)
{
PageFactory.InitElements(driver, this); // This doesn't exist in current context using .NET Core
}
}
}

我对此有点困惑,因为属性 FindsBy、FindsByAll 和 FindsBySequence 在 OpenQa.Selenium.Support.PageObjects 命名空间中都可用,但 PageFactory 不可用。据我所知,这些属性只适用于 PageFactory。

是否有使用 .NET Core 的不同方法,或者只是(尚未)实现?

最佳答案

我使用的是 WebDriver V3.141.0.0 和 .NET v4.5,您可以按如下方式替换您的代码:

using OpenQA.Selenium;
using OpenQA.Selenium.Support.PageObjects;

namespace Example
{
public class Form
{
public IWebElement Filter => Driver.FindElement(By.Name("Filter"));
/*
[FindsBy(How = How.Name, Using = "Filter")] // This does exist in current context using .NET Core
public IWebElement Filter { get; set; }
*/

public IWebElement Button => Driver.FindElement(By.TagName("Button"));
/*
[FindsBy(How = How.TagName, Using = "Button")]
public IWebElement Button;
*/
public Form(IWebDriver driver)
{
//PageFactory.InitElements(driver, this); // This doesn't exist in current context using .NET Core
}
}
}

关于c# - 使用 net core 的 PageFactory 是否有任何替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47035004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com