2012-08-01 82 views
1

Finder屬性參數是否有效,即它可以實際使用嗎?,我得到此編譯器錯誤「'Finder'不是有效的命名屬性參數,因爲它不是有效的屬性參數類型」每當我嘗試使用它,例如Selenium FindsBy屬性拋出編譯器錯誤

[FindsBy(Finder = By.Id("test").FindElement(By.TagName("iframe")))]  
public IWebElement Test{ get; set; } 

有沒有人有使用Finder屬性參數的工作示例,或者這是一個錯誤?

看到代碼: http://code.google.com/p/selenium/source/browse/trunk/dotnet/src/WebDriver.Support/PageObjects/FindsByAttribute.cs?r=17167#

http://msdn.microsoft.com/en-us/library/aa664615%28VS.71%29.aspx

此外,該類型的一個屬性類的位置和命名參數的僅限於該屬性的參數類型,它們是:

其中一個以下類型的: bool,byte,char,double,float,int,long,short,string。 該類型的對象。 類型System.Type。 一個枚舉類型,只要它具有公共可訪問性並且它嵌套的類型(如果有的話)也具有公共可訪問性(見17.2節)。 上述類型的一維數組。

據我所知由於沒有上述類型,所以我得到的編譯器錯誤或我錯了嗎?有

[FindsBy(Finder = By.Id("cke_Details").FindElement(By.TagName("iframe")))] 
public IWebElement Details { get; set; } 

是任何其他方式,我可以做到這一點:

我所試圖做的就是一個文本框的CKEditor像一個頁面對象的WebElement財產?感謝您的幫助

回答

4

這是.NET FindsByAttribute實現中的一個錯誤。您不應該嘗試使用Finder屬性;它根本無法工作。使用以下代替:

// WARNING: Completely untested code here. Not guaranteed to 
// work correctly, or even to compile. 
[FindsBy(How = How.Id, Using = "test")] 
public IWebElement Test { get; set; } 

如果你需要像你在你的問題中提到的層次查找路徑更復雜的東西,你可以用XPath或CSS選擇器使用發現,像這樣:

// WARNING: Completely untested code here. Not guaranteed to 
// work correctly, or even to compile. 
[FindsBy(How = How.XPath, Using = "//*[@id='test']/iframe")] 
public IWebElement Test { get; set; } 
+0

謝謝對於你的幫助和抱歉的多個帖子,會upvote,但我不能,這些鏈接也有助於回答我的問題[鏈接](http://stackoverflow.com/questions/9357223/ckeditor-selenium-webdriver-not -work-with-firefox-9-10-)JavaScript解決方法和[鏈接](http://code.google.com/p/selenium/issues/detail?id=3890) – Mayoweezy 2012-08-02 12:18:26