gpt4 book ai didi

javascript - 如何将webdriverio驱动传递到函数中进行模块化设计?

转载 作者:行者123 更新时间:2023-11-28 17:27:52 31 4
gpt4 key购买 nike

我正在使用 webdriverio 与 appium 服务器进行通信。我正在尝试自动化 Instagram 互动。每个自动化都需要我登录和注销。所以,我正在考虑编写一个登录函数和一个注销函数。

目前,我有一些看起来像这样的东西:

const wdio = require("webdriverio");
const opts = {...}
const client = wdio.remote(opts)

const login = (client, username, password) => {
return client
.click("#log_in_button")
.click("#login_username")
.keys(username)
.click("#password")
.keys(password)
.click("#button_text");
}

const someOtherAction = (client) => {
// More actions performed on client
// ...
}

client.init();
login(client, "username", "password")
.someOtherAction(client);

这不起作用 ^^,但是以这种方式编写的相同代码可以工作:

client
.init()
.click("#log_in_button")
.click("#login_username")
.keys("username")
.click("#password")
.keys("password")
.click("#button_text")
.waitForExist("~Activity") // Some other actions...

我怀疑这与this有关没有正确设置,我尝试查看 webdriverio 的源代码,但我不太明白它。那么,我如何传递驱动程序以便编写更加模块化、可用且可维护的代码?

此外,我不太明白这种命令链是如何工作的,因为 api 文档位于 http://webdriver.io没有说明任何有关函数调用的返回值的信息,例如 click , keys等等,但是,它们的工作方式似乎就像返回 client 一样。本身。如果有人也能解释链接,那就太好了。

最佳答案

使用 WebdriverIO 编写测试的推荐方法是通过 PageObject 模式。有一个example GitHub 存储库中的目录。查看boilerplate section也是一个好主意。来自 WebdriverIO 社区的人们提供了有用的入门包以快速入门。

关于javascript - 如何将webdriverio驱动传递到函数中进行模块化设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51170123/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com