我正在C# .Net中创建一个测试自动化框架,使用Appium来自动化IOS和Android,并希望使用模式。所以我想利用PageFactory扩展。
通过将DotNetSeleniumExtras.PageObjects.Core作为NuGet包添加,会导致一个错误(红行)。4个错误
CS7069: Reference to type 'IFindsById" claims it is defined in 'WebDriver', but it could not be found.

为了实例化页面对象并实现pattern模式,我需要这个扩展DotNetSeleniumExtras.PageObjects.Core。
如果我漏掉了什么,或者有什么解决办法,请告诉我。提前感谢!
下面是我添加的上下文代码:
using NUnit.Framework;
using OpenQA.Selenium.Appium.iOS;
using OpenQA.Selenium.Appium.PageObjects;
using SeleniumExtras.PageObjects;
using OpenQA.Selenium;
using OpenQA.Selenium.Appium;
namespace NativeApp_TestAutomation.Tests.Specs.IOS
{
[TestFixture]
public class LoginTest
{
private IOSDriver<IOSElement> _driver;
private HomeScreen _pageObject;
[OneTimeSetUp]
public void BeforeAll()
{
var capabilities = Capabilities.GetIOSCapabilities("");
var serverUri = Env.ServerIsRemote() ? AppiumServer.RemoteServerUri : AppiumServer.LocalServiceUri;
_driver = new IOSDriver<IOSElement>(serverUri, capabilities, Env.LaunchTimeoutSeconds);
var timeSpan = new TimeOutDuration(new TimeSpan(0, 0, 0, 5, 0));
_pageObject = new HomeScreen(_driver);
PageFactory.InitElements(_driver, _pageObject, new AppiumPageObjectMemberDecorator(timeSpan));
}
}}
我在这里得到的红色线条都有相同的错误。


发布于 2022-07-20 18:50:16
其中一个最常见的原因是版本和程序集的混合,因为不同的版本及其兼容性。
如果您可以尝试以下步骤,最有可能解决的问题是:
这是一种最简单的方法--如果以前的版本有足够的特性,那么它就完成了,您可以等待更新。
第二个可以帮助您的选项是绑定重定向。这个想法很简单,你需要确保应用程序知道你的WebDriver在哪里,它的版本是正确的。
这里有一个很好的解释(但相信我,这是你最不想做的事,固定在一个地方,在另一个地方坏掉) 将bindingRedirect添加到.Net标准库
https://stackoverflow.com/questions/72927803
复制相似问题