- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为 WebDriver 中的页面对象创建某种代码生成。
我读到了它,并观看了下一个讲座: http://www.youtube.com/watch?v=mSCFsUOgPpw
我还看到一些工具可以为我的应用程序中的每个新页面创建一个页面对象,因此我知道如何识别和创建与我相关的 WebElement(通过 ID 或 XPath),并创建一个新的页面对象。
但我有两个主要问题:
最佳答案
为每个小部件创建一个(可重用)页面对象(小部件=按钮、组合框、文本字段...)。小部件的构造函数接受 WebElement 或 By 对象。每个页面对象都应该使用可重用的页面对象。这是一个简单的登录页面的示例。
public class MyLoginPage {
private TextField mUsername;
private TextField mPassword;
private Button mSignon;
...
// getter
public TextField getUsername() {
return mUsername;
}
}
通过使用一些启发式方法,您应该能够选择要使用的正确小部件。这应该可以回答您的第一个问题。
对于第二个问题。要么在页面对象上实现特定方法,返回另一个页面对象。类似这样的事情:
public MyHomePage clickSignon() {
this.mSignon.click();
return new MyHomePage(...);
}
您还可以将按钮实现为通用类。单击 Button 小部件的方法:
public <T extends Widget> T click() {
... // coe that makes the click
return new T(...);
}
登录页面内的成员(member)声明:
private Button mSignon<MyHomePage>;
所以你可以写:
MyHomePage hp = loginPage.getSignon().click();
要么实现页面对象工厂。工厂能够确定屏幕的当前状态并返回与您所看到的内容相匹配的页面对象。您可以通过尝试在屏幕上查找某些特定元素来确定这一点(即登录按钮仅出现在登录页面上)。
根本没有明确的答案,但我希望它已经给了你方向。请随时在评论中提出问题,我将更新此答案。
关于selenium - WebDriver PageObjects 的代码生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21661320/
我刚开始使用 WebDriver ,我正在尝试学习最佳实践,特别是使用 PageObjects和 PageFactory . 我的理解是PageObjects应该暴露网页上的各种操作,并将WebDri
所以我有一个页面对象,它处理用户所在页面的所有主要功能。我想这样做,这样当调用页面对象的实例时就会发生一些事情。在当前情况下,我有: public MyPageObject MY_SCREEN = n
所以,当出现问题时,我只是在创建一个简单的 selenium/JBehave 代码。 我会先贴出简化的代码,稍后再解释我的问题。 所以这里我们有一个简单的抽象类,它将在我的 PageObjects 上
我正在尝试为 WebDriver 中的页面对象创建某种代码生成。 我读到了它,并观看了下一个讲座: http://www.youtube.com/watch?v=mSCFsUOgPpw 我还看到一些工
如何为页面中的框架实现 pageObject 模式(Selenium)..我有一个主页,有一个左框架和右框架,我想为每个框架创建页面对象.. 例如,我有如下的 LeftFrame 页面对象: Publ
有没有办法从另一个页面对象文件访问一个页面对象文件中定义的元素? 例子:如果我们需要从 LoginPage.ts 文件访问“@usernameInput”,是否需要从 HomePage.ts 复制它?
我想从下面知道哪个是创建 PageObject 类实例的更好选择(例如:LoginPage):- 1) 在所有测试和步骤中创建一个 Pageobject 类的实例(任何需要的地方)? LoginPag
我想我已经掌握了 PageObject 模式的要点,但其中有些部分我还没有掌握。 所以我一直在学习本教程,现在我有了这个 Page 类: public class SignUpPage extends
如果一个按钮可选地显示在页面(或页面的一部分)上,它是否有资格将该部分表示为两个不同的 PageObjects,其中一个 PageObject 提供与按钮交互的方法,而另一个 PageObject 不
我有一些基本的 selenium 和 java 经验,但我正在尝试了解有关页面对象模式的更多信息,并且在完全理解如何在实际项目中使用它时遇到了一些问题。我尝试在谷歌中寻找简单但实用的项目,我可以复制并
page-object gem自动 generates multiple accessors . 例如,除了 link 之外,您还可以使用 links,例如: class MyPage inc
我正在编写一些 Selenium 测试,想知道如何导航到我的 ProfilePage,只需在我的测试中调用它的类即可所以我得到了我的 BasePage 类, class BasePage(object
我正在使用 Cheezy Page Object gem(这也意味着我正在使用 Watir,这也意味着我正在使用 Selenium)。我还明确加载了 watir gem。 无论如何,我有一个网站,我正
将 PageObjects 模式应用于页面组件时的标准方法是什么? 举个例子,假设我正在为亚马逊产品页面上的功能编写测试。 该页面包含大量单独的功能、产品信息、查看此内容的客户、推荐的其他客户等。 我
本文整理了Java中com.atlassian.webdriver.pageobjects.WebDriverTester类的一些代码示例,展示了WebDriverTester类的具体用法。这些代码示
我们的应用程序具有消耗组件的组件,这些组件消耗具有不同复杂性的组件。所以我只想要页面上的输入,以验证何时设置对象文本是否正确。问题是它是这些子组件之一。 我的同事告诉我,有两种方法可以做到这一点,第一
我对 Selenium 非常陌生,我开始自动化登录过程。我为此目的使用了 PageObjects。我有一个 LoginPage ,它有一个这样的方法: public MyHomePage login(
我正在尝试使用 WebdriverIO Docs 中定义的语法定义一个 PageObject : 父页面 //page.js export default class Page { constru
我试图找到这个问题的答案,但没有一个对我有帮助。我确定我遗漏了一个细节,但我无法弄清楚到底是什么。 运行测试用例时出现NullPointerException。我认为当我尝试将驱动程序传递给我的页面对
我正在使用 PageObjects 在 Selenium Webdriver 中制作一个测试套件,但我怀疑即使驱动程序指向不同的框架,WebElement 引用的实例是否也可以工作?我正在为其编写测试
我是一名优秀的程序员,十分优秀!