【问题标题】:How do I implement the Page Object Pattern C# Code described below with selenium?如何使用 selenium 实现下面描述的页面对象模式 C# 代码?
【发布时间】:2019-01-04 10:37:13
【问题描述】:

我需要使用 selenium 实现以下页面对象模式 C# 代码。 https://www.automatetheplanet.com/page-object-pattern/

在其中一个例子中;有一些代码-

   [FindsBy(How = How.Id, Using = "sb_form_q")]
    public IWebElement SearchBox { get; set; }

如果我要使用以下代码运行一些测试,我将如何使用带有来自网站的 id、类、值的代码模式。等等?谁能举个例子?

【问题讨论】:

  • 您想要不同定位器策略的示例?
  • 是的,请.....
  • 明确地说,这不是您要询问的页面对象模式。它是 PageFactory 属性。见the docs。顺便说一句,Selenium 贡献者建议不要使用 PageFactory。它是作为您可以做的事情的示例代码编写的,而不是供人们实际使用的。请参阅首席提交者 Simon Stewart,说明此 here
  • @JeffC 看来你还没有理解西蒙提出的讽刺。坚持你的马直到 27m:50s。关于 PageFactory,Simon 明确表示“我喜欢这个东西,很好”
  • @DebanjanB 不。如果您认为他在讽刺,那么您不理解讽刺,并且太努力地证明使用 PageFactory 是合理的,或者只是不太了解英语。连三分钟都不到……再看一遍。去看看他的其他视频,里面到处都是他和其他人说不要使用这些东西。

标签: c# unit-testing selenium selenium-webdriver automated-tests


【解决方案1】:

C# 中的页面对象模式定位器 -

1) 按 ID -

[FindsBy(How = How.Id, Using = "your id")]
        public IWebElement my_ID_Element{ get; set; }

2) 按名称 -

[FindsBy(How = How.Name, Using = "your_name")]
        public IWebElement my_Name_Element{ get; set; }

3) 通过 Xpath -

[FindsBy(How = How.XPath, Using = "//your_xpath")]
        public IWebElement my_Xpath_Element{ get; set; }

4) 通过 CSS 选择器 -

[FindsBy(How = How.CssSelector, Using = "your_css_selector")]
        private IWebElement my_CSS_Selector_Element;

5) 按类名 -

[FindsBy(How = How.ClassName, Using = "your_class_name")]
        private IWebElement my_Class_Name_Element;

【讨论】:

    猜你喜欢
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 2020-06-19
    • 2011-02-04
    相关资源
    最近更新 更多