我使用Ruby使用Selenium Webdriver自动化Web应用程序。我有一个场景,登录页面对于不同的用户可能看起来不同。我该如何开始自动化这样的页面?页面对象模型是否适用于此场景?
感谢您的帮助。
谢谢
发布于 2018-12-14 15:35:56
我再解释一下:
假设1:我有一个YAML,可以存储所有用户的信用。
假设2:为了这个例子,假设我使用cucumber框架与Selenium / Ruby一起测试登录页面:https://github.com/cucumber/cucumber-ruby。
所以,我有一个Ruby类,它将包含pageObject gem,并且将为所有不同的Login页面提供URL和页面对象,例如: class LoginPage include PageObject page_url_user_1 = someUrl for user1's login page page_url_user_2 = someUrl for user2's login page text_field(:user_1, name: 'username') text_field(:pass_1, name: 'password') button(:submit, css: '.submit-btn') text_field(:user_2, name: 'username') text_field(:pass_2, name: 'password') button(:submit, css: '.submit-btn') def submit_creds(user_1) self.user_1 = GetCreds fro YAML self.pass_1 = GetCreds fro YAML self.submit end def navigate_to_Login_page(page_url_user_1) @browser.navigate.to page_url_user_1 end end
现在在Cucumber级别上,您有一个功能步骤:
When I navigate to "page_url_user_1" login page And I login as "User_1"
在步骤定义中,你可以有类似的东西:
when(/^I navigate to "([^"]*)" login page do |user_login_url| on(LoginPage).navigate_to_Login(user_login_url) end when(/^I login as a "([^"]*)" do |user_name| on(LoginPage).submit_creds(user_name) end
希望这可以让你开始。
https://stackoverflow.com/questions/-100006289
复制相似问题