2017-10-31 6 views
0

Selenium v3.6.0과 .NET Core 2.0을 사용하고 있습니다. 다음 코드는 PageFactory.InitElements에서 currenct 컨텍스트에 존재하지 않는다는 오류를 표시합니다.net 코어를 사용하는 PageFactory에 대한 대안이 있습니까?

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를 사용하는 다른 방법이 있습니까? 아니면 아직 구현되지 않았습니까?

답변

1

버전 3.6.0의 WebDriver.Support.dll에는 PageFactory 클래스가 없습니다 (Visual Studio에서는이 DLL을 개체 탐색기에서 열 수 있으며 이러한 클래스가 없음을 알 수 있습니다). 따라서 컴파일 오류가 발생합니다.

github https://github.com/SeleniumHQ/selenium/blob/master/dotnet/src/support/PageObjects/PageFactory.cs 의 소스 코드를보고 PageFactory 클래스의 전처리 지시문 #if! NETSTANDARD2_0 ... #endif를 참조하십시오. NETSTANDARD2_0이 NETCORE2_0에 왜 영향을 미치는지 모르겠지만 실제로 이유는 모르지만 라이브러리 사용자 인 PageFactory는 현재 액세스 할 수 없습니다. 이 비디오에 https://www.youtube.com/watch?v=xd5TCWmaxGI

감사를 언급 한 바와 같이

+0

괜찮 아, 감사합니다! – Marcel

0

예는 지원되지 KARTHIK KK

관련 문제