c# Selenium Webdriver使用PageObjects:无法使用FindsBy定位对象;可以使用FindE
本文关键字:定位 FindsBy 对象 FindE 可以使 Webdriver Selenium 使用 PageObjects | 更新日期: 2023-09-27 18:11:11
我有c#自动化代码,使用Selenium Webdriver来查找对象。这段代码可以工作(见下文):
driver.FindElement(By.Id("Cyber Liability_start")).Click();
最近,我们的测试组投票决定使用页面对象框架。现在我已经创建了一个使用Selenium PageObjects库的类。下面是相同的对象,但在页面对象类中。
[FindsBy(How = How.Id, Using = "Cyber Liability_start")]
public IWebElement btnNGP { get; set; }
public void ClickNGP()
{
WaitForLoad();
btnNGP.Click();
}
然而,当我使用page对象类运行测试时,我得到一个"no matching element"错误。因此,看起来Selenium无法找到页面对象。任何建议如何解决赞赏。谢谢。
问题是由于app.config文件中的页面条目与页面对象类名称不同。
app.config文件中的条目为
<add name="PC_ProductsProgramsPage"
类名为PC_Products_ProgramsPage.cs
当我将app.config文件中的条目更改为"PC_Products_ProgramsPage"时,页面对象被成功识别。
谢谢