如何在不更改页面的 Web 应用程序中使用页面对象样式自动化测试
How to use page-object style automation test inside a web application that doesn't change pages
我目前正在使用 Ruby、Watir-webdriver 和 Cucumber 来创建自动化测试框架。我真的很喜欢页面对象样式结构代码的方式,但我的应用程序实际上并不经常更改页面(我正在尝试自动化 Sitecore Content Editor/Page 编辑器)。我假设有一种方法可以将页面的大部分分成它自己的 class,然后在 class 中定义方法。但是,如果我需要在同一页面上做很多事情,我该如何使用页面对象 gem 和黄瓜来调用此 class?
到目前为止,我知道如何做到这一点的唯一方法就是这样。
class Sitecore
include PageObject
page_url "http://website.com/"
include PageObject::PageFactory
# methods for a large portion A
# methods for a large portion B
...
# methods for a large portion Z
end
然后像这样进行相应的Cucumber测试。
Given(/^I am in the content editor$/) do
visit Sitecore do |page|
page.MethodA
page.MethodB
end
end
When(/^I navigate to some folder$/) do
on Sitecore do |page|
page.MethodC
page.MethodD
end
end
Then(/^I should see something present$/) do
on Sitecore do |page|
page.MethodE
end
end
这些都使用相同的 class,所以很简单。我只是使用 visit 和 on 关键字。但是,如果我要将其更改为多个 classes,我该如何调用它们而不实际更改我所在的页面?
你的问题有点乱,你是不是在找这个:
Given(/^I am in the content editor$/) do
page = Sitecore.new
page.goto(page_url)
end
When(/^I navigate to some folder$/) do
page.MethodC
page.MethodD
end
Then(/^I should see something present$/) do
page.MethodE
end
我目前正在使用 Ruby、Watir-webdriver 和 Cucumber 来创建自动化测试框架。我真的很喜欢页面对象样式结构代码的方式,但我的应用程序实际上并不经常更改页面(我正在尝试自动化 Sitecore Content Editor/Page 编辑器)。我假设有一种方法可以将页面的大部分分成它自己的 class,然后在 class 中定义方法。但是,如果我需要在同一页面上做很多事情,我该如何使用页面对象 gem 和黄瓜来调用此 class?
到目前为止,我知道如何做到这一点的唯一方法就是这样。
class Sitecore
include PageObject
page_url "http://website.com/"
include PageObject::PageFactory
# methods for a large portion A
# methods for a large portion B
...
# methods for a large portion Z
end
然后像这样进行相应的Cucumber测试。
Given(/^I am in the content editor$/) do
visit Sitecore do |page|
page.MethodA
page.MethodB
end
end
When(/^I navigate to some folder$/) do
on Sitecore do |page|
page.MethodC
page.MethodD
end
end
Then(/^I should see something present$/) do
on Sitecore do |page|
page.MethodE
end
end
这些都使用相同的 class,所以很简单。我只是使用 visit 和 on 关键字。但是,如果我要将其更改为多个 classes,我该如何调用它们而不实际更改我所在的页面?
你的问题有点乱,你是不是在找这个:
Given(/^I am in the content editor$/) do
page = Sitecore.new
page.goto(page_url)
end
When(/^I navigate to some folder$/) do
page.MethodC
page.MethodD
end
Then(/^I should see something present$/) do
page.MethodE
end