2016-05-24 3 views
4

Ich bin neu in Selen. Beim Ausführen (Debuggen) meiner Selentests (in C#) bekomme ich "das Erhalten des Laufzeittyps eines transparenten Proxys wird in diesem Kontext nicht unterstützt" und deshalb wird keines der Webelemente gefunden.Erhalten der Laufzeittyp eines transparenten Proxy wird in diesem Kontext nicht unterstützt

Ich habe "Selenium.Support.PageObjects" & PageFactory verwendet, um Webelemente zu lokalisieren und zu initialisieren.

Kann mir jemand dabei helfen?

Im Folgenden finden Sie Schnipsel meines Code:

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

namespace TestFramework 
{ 
    public class TestClass: TestBase 
    { 

     public TestClass(Driver driver): base(driver) { } 

     [FindsBy(How = How.XPath, Using = "//div[@class='modal-footer']/button[@title='Yes']")] 
     public IWebElement YesButton { get; set; } 

     [FindsBy(How = How.XPath, Using = "//div[@class='modal-footer']/button[@title='No']")] 
     public IWebElement NoButton { get; set; } 


     public void ClickYesButton() 
     { 
     YesButton.Click(); 
     } 
     public void ClickNoButton(int timeout = ConfigMT.DefaultTimeout) 
     { 
     NoButton.Click(); 
     } 

    } 
} 

und Testbase-Klasse ist:

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

namespace TestFramework 
{ 

public class TestBase 
{ 

    protected IWebDriver Driver { get; set; } 

    public Page(Driver driver) 
    { 
     this.Driver = driver; 
     PageFactory.InitElements(this.Driver, this); 
    } 

} 
} 

Antwort

0

.NET PageFactory Implementierung wurde in 2,46 Refactoring und verwendet nun Instanzen System.Runtime.Remoting.Proxies .RealProxy, um Methodenaufrufe abzufangen und Ihre Felder und Eigenschaften mit den entsprechenden Attributen zu füllen. Die Verwendung der .NET Framework-Proxy-Lösung bietet Flexibilität für andere Projekte von Drittanbietern zur Verwendung der .NET PageFactory-Implementierung und ändert sich daher nicht. Es sollte möglich sein, Ihre eigene Proxy-Lösung zu erstellen, die Ihnen die Debug-Eigenschaften in Visual Studio zur Verfügung stellt, aber es würde eine benutzerdefinierte Lösung erfordern.

4

Laut diesem Thread am Ende dieser Antwort scheint dies ein Fehler im VS-Debugger zu sein.

erwähnte Eine Abhilfe zu Debug>Options>Debugging>General gehen und klicken Sie auf das Kontrollkästchen Use the legacy C# and VB expressions evaluators

Während dies für mich gearbeitet, Sie werden immer noch nicht in der Lage sein, Methoden oder Eigenschaften auf dem Element zu überprüfen, ob das ist, was Sie versuchen, leider zu tun.

https://social.msdn.microsoft.com/Forums/vstudio/en-US/7f4e2bca-91dd-4919-8cbe-0adff2021ce8/debugging-transparent-proxy-objects-not-working-anymore-in-visual-studio-2015?forum=vsdebug

+0

habe ich versucht, dass und das Problem ändert sich auf „Can not obtain Felder oder Aufruf Methoden auf der Instanz des Typs ... weil es ein Proxy zu einem Remote-Objekt“ – rupweb

Verwandte Themen