2015-09-04 81 views
0

我有使用Selenium Webdriver查找对象的C#自动化代码。此代码有效(见下文):使用PageObjects的C#Selenium Webdriver:无法使用FindsBy查找对象;可以使用FindElement找到相同的对象

driver.FindElement(By.Id("Cyber Liability_start")).Click(); 

最近,我们的测试组投票转移到Page Object Framework。我现在创建了一个使用Selenium PageObjects库的类。下面是相同的对象,但在页面对象类中。

[FindsBy(How = How.Id, Using = "Cyber Liability_start")] 
public IWebElement btnNGP { get; set; } 

public void ClickNGP() 
{ 
WaitForLoad();   
btnNGP.Click(); 
} 

但是,当我运行我的测试使用页面对象类,我得到一个“没有匹配元素”的错误。所以,看起来Selenium无法找到页面对象。任何建议如何解决赞赏。谢谢。

回答

0

问题是因为app.config文件中Page的条目不同于Page Object Class Name。

项在app.config文件是

<add name="PC_ProductsProgramsPage" 

而类的名字是PC_Products_ProgramsPage.cs

当我改变在app.config文件中的条目“PC_Products_ProgramsPage”,页面对象是成功确定。

谢谢