本文摘自网络,作者doelle,侵删。

go webdriver

seleniumpuppet

功能说明

go-webdriverw3c-webdriverchromedriverchromeselenium

用途

  • 模拟用户操作,配合用户操作,全自动化流程测试,或者半自动化测试
  • 页面数据抓取,而不需要进行各种复杂的破解

使用方法

./chromedriver --port=9515 --allow-ips=
zhouzhe1157/go-webdriver => github.com/zhouzhe1157/go-webdriver v1.0.29
go mod tidy
go mod vendor
    //logDir := "E:\\logs\\" + util.RandString(16)
    opts := excutor.ChromeOptions{IsHeadless: false, UserDataDir:""}
    resp, err := driver.GetSession(opts)
    if err != nil {
        return err
    }

    // 构建单通道
    pip := pipline.Pipline{Data: pipline.PipData{Actions: []action.Action{}}}

    // 邮箱名称
    // len := util.RandInt(9, 14)
    // username := util.RandString(len)

    // 操作步骤
    action1 := action.Action {
        ActionName: "打开页面",
        ActionType: action.ACTION_NAVIGATETO,
        ActionTarget: "https://www.baidu.com",
    }

    action2 := action.Action {
        ActionName: "输入参数",
        ActionType: action.ACTINO_SEND_KEYS,
        ActionTarget: "#kw",
        ActionValue: "golang",
    }

    action3 := action.Action {
        ActionName: "搜索",
        ActionType: action.ACTION_CLICK,
        ActionTarget: "#su",
        ActionDelay: 1,
    }

    pip.Data.Actions = append(pip.Data.Actions, action1, action2, action3)
    _ = pip.SetSessionId(resp.SessionId).Start()
  • 示例 需要人为介入或者阻塞流程使用方法(等待用户输入了关键词之后,才会自动执行搜索操作)
    //logDir := "E:\\logs\\" + util.RandString(16)
    opts := excutor.ChromeOptions{IsHeadless: false, UserDataDir:""}
    resp, err := driver.GetSession(opts)
    if err != nil {
        return err
    }

    // 构建单通道
    pip := pipline.Pipline{Data: pipline.PipData{Actions: []action.Action{}}}

    // 邮箱名称
    // len := util.RandInt(9, 14)
    // username := util.RandString(len)

    // 操作步骤
    action1 := action.Action {
        ActionName: "打开页面",
        ActionType: action.ACTION_NAVIGATETO,
        ActionTarget: "https://www.baidu.com",
    }

    action2 := action.Action {
        ActionName: "输入参数",
        ActionType: action.ACTION_VIEW_VALUE,
        ActionTarget: "#kw",
        ExpectType: action.EXPECT_TYPE_EXIST,
    }

    action3 := action.Action {
        ActionName: "搜索",
        ActionType: action.ACTION_CLICK,
        ActionTarget: "#su",
        ActionDelay: 1,
        PreAction: &action2
    }

    pip.Data.Actions = append(pip.Data.Actions, action1, action3)
    _ = pip.SetSessionId(resp.SessionId).Start()

待完成功能

webdriverCommand

欢迎咨询,期待更多的小伙伴一起加入(QQ: 1157667735)


相关阅读 >>

更多相关阅读请进入《Go》频道 >>


Go语言101

老貘

一个与时俱进的Go编程知识库。