小编Sun*_*eva的帖子

如何实现更好的OOP

我正在开发一个selenium WebDriver框架[Java],其中有一个Base类,其他所有类都从这个类扩展而来.此外,我遵循页面对象模型,其中每个页面对应于一个类和方法,其中导航到下一页返回下一页/类的新实例.简而言之,每个UI页面对应于Class

现在每个页面都有一些共同的功能,所以不要把它们放到每个类中,而是避免DRY我把它放在我的Base Page类中

对于前goBack方法是在每个基本上导航到上一页的页面上.

我担心的是我想跟随页面/类之间的链接,因此我不确定什么应该是前goBack的常用方法的返回类型.

请记住,导航到下一页的任何方法都应该返回该页面的新实例.

我认为一个解决方案是实现泛型,但仍在努力.任何人都可以帮助我如何实现这一目标.

public class BasePage {
            public WebDriver driver;
            public BasePage(WebDriver driver) {
                this.driver=driver;
            }
            public BasePage clickGoBack() throws Exception{
            driver.click(goBackButton);
            return this;
            }
       }
Run Code Online (Sandbox Code Playgroud)

java oop selenium

5
推荐指数
1
解决办法
127
查看次数

Cypress:cy.click() 失败,因为该元素已与 DOM 分离

我面临Cypress 4.7.0的问题。以下是我在尝试自动执行 Automationpractice.com 网站上的用户创建场景时收到的错误代码

该方法cy.click()失败,因为该元素已与 分离DOM

<input type="password" class="is_required validate form-control" data-validate="isPasswd" name="passwd" id="passwd">
Run Code Online (Sandbox Code Playgroud)

Cypress 需要附加元素才能DOM与它们交互。

之前运行的命令是:

cy.get()
Run Code Online (Sandbox Code Playgroud)

DOM元素可能在先前命令和当前命令之间的某个位置分离。

发生这种情况的常见情况:

  • 您的 JS 框架会异步重新渲染。
  • 您的应用程序代码对事件触发做出反应并删除了该元素。

上述场景的代码示例:

describe("Cypress demo script", () => {
  it("triage DOM issue", () => {
    const uuid = () => Cypress._.random(0, 1e6);
    const id = uuid();

    cy.visit("http://automationpractice.com/index.php");
    cy.wait(2000);
    cy.contains("Sign in").click();
    const email = "tester" + id + "@yopmail.com";
    cy.get("#email_create").type(email);
    cy.get("#SubmitCreate > span").click();

    cy.get("form#account-creation_form").within(($form1) => {
      cy.get("input#id_gender1").click();
      cy.get("input#customer_firstname").type("Automation");
      cy.get("input#customer_lastname").type("tester");
      cy.get("input#passwd").click({ …
Run Code Online (Sandbox Code Playgroud)

cypress

5
推荐指数
1
解决办法
2638
查看次数

具有不同对象的列表

可以说我有

class Person {
    String Age;
    String Name;
}

Class Employee  {
    int Salary;
    String Name;
}
Run Code Online (Sandbox Code Playgroud)

我在列表中有这些类的各种实例.我已经建立,其接受2个独立的功能List<Person>List<Employee>和显示的内容.但我想创建一个通用函数,它接受任何对象的List并执行显示部分.

请帮我

谢谢Sunny

java

2
推荐指数
1
解决办法
96
查看次数

如何使用 Jasmine2 创建量角器报告

我最近开始使用 Protractor 库来测试 angularjs 站点。我尝试使用以下 2 个库来创建 HTML 报告,但在这两种情况下我都遇到了错误

https://www.npmjs.com/package/protractor-jasmine2-html-reporterhttps://www.npmjs.com/package/protractor-jasmine2-screenshot-reporter

平台:- Windows 7

安装cmd:- npm install -g protractor-jasmine2-html-reporter

错误:找不到模块“protractor-jasmine2-html-reporter”

配置文件

var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');

var today = new Date(),
    timeStamp = today.getMonth() + 1 + '-' + today.getDate() + '-' + today.getFullYear() + '-' + today.getHours() + 'h-' + today.getMinutes() + 'm';

var reporter=new Jasmine2HtmlReporter({
    consolidateAll: true,
        savePath: 'target/screenshots',
        takeScreenshotsOnlyOnFailures: true,
         filePrefix: 'index -'+today
});

// An example configuration file.
exports.config = {
  directConnect: true,

  // Capabilities …
Run Code Online (Sandbox Code Playgroud)

angularjs protractor jasmine2.0

0
推荐指数
1
解决办法
7264
查看次数

标签 统计

java ×2

angularjs ×1

cypress ×1

jasmine2.0 ×1

oop ×1

protractor ×1

selenium ×1