我尝试从头开始为我正在测试的网站创建一个Coded Ui框架。
我知道通过找到我可以使用的免费版本(例如Cuite)可能有更好的方法来解决这个问题,但我想从一开始就知道它是如何工作的,并且对它正在做的事情充满信心。 / p>
这是我设置的内容。
我有一个主编码的UI目录,我创建了一个PageObjects文件夹,该文件夹与Properties和References目录(存储库)位于同一级别。
Page Objects目录包含每个PAGE的子文件夹(E.G. Home,Registration,Sign Up,Contact Us .. e.c.t。)
每个Sub文件夹都有一个" .uitest"文件(例如Home.uitest,Registration.uitest) 在主文件夹中,有一个仍然存在的UIMap.uitest文件。
Page_Objects
------- Home_Page
----------------- NavigateToThe_Home_Page.cs
----------------- RefreshThe_Home_Page.cs
----------------- SelectLinksOnMenuItem_Home_Page.cs
----------------- PAginateThroughInformation_Home_Page.cs
----------------- Home_Page.cs
---------------------------- Home_Page.Designer.cs
---------------------------- Home_Page (partial)
----------------- Home_Page.uitest
------- Registration
----------------- Registration.cs
---------------------------- Registration.Designer.cs
---------------------------- Registration (partial)
----------------- Registration.uitest
UIMap.uitest
这似乎是在一个程度上工作,但是当我从一个目录运行测试时,我仍然遇到问题,(Home)在另一个目录中(注册甚至回到根目录)。
我只想知道使用此流程的最佳方式,因为我无法找到有关如何执行此操作的明确定义。
我是自动化方面的新手,所以在向我解释时请保持简单。
非常感谢
菲尔
答案 0 :(得分:2)
没有唯一的页面对象模型,因为不需要所有页面对象模型框架都相同。所以你可以使用页面对象创建自己的框架。
我建议你做我做的事,
(1)创建一个类测试方法(也许你已经拥有它)。说它是 CodedUI.cs
(2)您说您已经拥有.uitest文件,因此请确保为每个uimap.cs提供唯一名称
*HomeUIMap.cs
*RegistrationUIMap.cs
*ContactUs.cs
(3)现在为codedUI.cs类中的所有uimap.cs创建对象
*HomeUIMap HomeObj = new HomeUIMap();
*RegistrationUIMap RegObj = new RegistrationUIMap();
*ContactUsUIMap ContactUsObj = new ContactUsUIMap();
(4)现在你按照你想要的顺序使用对象调用每个页面的函数。
例:
* HomeObj.NavigateToHome();
* HomeObj.RefreshHomePage();
希望你现在有了一个主意。