10f*_*0ff 3 c# selenium-ide pageobjects selenium-webdriver
我知道有Selenium IDE和Selenium Builder作为Firefox插件来记录动作并将它们导出为例如C#-Code.
但是还有一个工具可以帮助您按照PageObject模式创建Selenium(2)WebDriver测试代码吗?我知道这很难,因为程序必须知道如何实现抽象.
据我所知,这样的工具不存在?但是,由工具支持创建Selenium WebDriver PageObject-Code的最佳方法是什么?
也许使用Selenium构建器只是通过id,类名等创建引用并在我的代码中手动实现它们?这可能比我自己决定精确识别元素的速度要快一些.但是为什么Selenium Builder的开发人员动态地创建元素引用
IWebDriver wd = new RemoteWebDriver(DesiredCapabilities.Firefox());
wd.FindElement(By.Id("NameField")).Click();
wd.FindElement(By.Id("NameField")).Clear();
Run Code Online (Sandbox Code Playgroud)
而不是FindBy属性?
[FindsBy(Using = "NameField")]
public IWebElement nameField;
Run Code Online (Sandbox Code Playgroud)
元素将是可重用的,代码将更短.
在回答你的问题时,没有工具,我很高兴没有.人们过分依赖这些类型的工具.我还认为使用Builder或IDE为您完成工作并不会更快.在短期内,是的,长期的,绝对不是.
虽然建筑师在"发现"中更加聪明,但它仍然不是很精彩.XPath与IDE,甚至Firebug和Chrome自己的开发者控制台一起落在了它的位置.
什么将为您服务,是手动完成的.
但是,如果你一直都在使用工具,那么使用Builder(因为它比IDE更好一点)来构建代码.
就"为什么"Builder提出这种代码而言,这是因为它基本而简单.这些工具旨在为您提供有效的基本代码.不是最佳实践的花哨代码.这是你应该手动做的事情.您可能会发现IDE提供的内容非常相似.
任何试图将这些工具作为自动化测试答案出售的人都是错误的.答案是让您的测试人员和开发人员有足够的时间来协调一个体面的策略!
没有工具可以准确地定义动态元素的位置策略.每个页面上都有ID更改的内容.那么你期望它做什么?它会把它举起来放在空中,给你最好的拍摄效果.这是您进入并节省时间并制定有效的位置策略的地方 - 这是IDE/Builder将为您节省短期时间的地方,但是当它崩溃时您将花费长期时间来修复它.
| 归档时间: |
|
| 查看次数: |
2596 次 |
| 最近记录: |