我很ated肿,测试是必要的商城小程序,我使

2020-12-09
来源:

微信小程序商城源代码_商城小程序_小程序商城系统开发

博客:oschina,cloud + community,Zhihu等主要平台都有它。

目录一、Appium与Python结合进行小程序自动化

搜索搜索:如果您以前从未搜索过,请单击此处,历史记录为空。但是,如果您进行了搜索,则必须有历史记录。如果不是第一次单击它,然后使用自动脚本再次单击它,将不允许您输入它,并且会报告错误。

然后,您只能从历史记录中进行选择,因此您必须等到单击一次后,历史记录中的信息才会出现。

等待搜索框出现-单击搜索框后,我等待了5秒钟。 time.sleep(5),等待历史记录中的“必要商城”。

您可以看到历史记录是正确的,但是历史记录是WebView。

此WebView属于程序微信,而不是小程序,但属于应用程序微信。因此,这件事对外界不开放,您无法知道与“必要的商城”相对应的元素位置。

不知道该怎么办?它不是一个完整的元素。如果要向元素添加一点,则只能使用坐标,因为微信不会打开Debug属性。

使用坐标通过adb命令执行单击操作,adb shell输入抽头281 205281 205是坐标点。

如果有多个历史记录,则坐标肯定会改变。只需确保与历史记录对应的位置对于您的手机是正确的。假设测试机也由其自身操作,即测试环境应保持独立。

当然,找到一种方法来确保数据始终存在。只要您在微信中进行了搜索,就会有历史记录,并且您通常不会使用该路线,也不会在这里搜索,而直接在首页上搜索。

单击“必要的商城”之后,这还不够。可以将坐标表示为百分比,但是应该很好地控制该百分比。输入必要的商城后,这个地方仍然是WebView,并且我仍然没有权限,只能继续使用坐标。

但是,该位置的坐标范围非常大。您可以单击整个“必要的商城-小程序”,选择一个中间点,然后在此处使用比率进行计算。仍然可能。

大约估算一下,在多个模型上进行尝试,因为这需要您不断地测试,测试和调整基准百分比,以确保达到一定的成功率。点击进入小程序页面:

这个地方可以被识别,这个地方实际上并不属于微信。只需通过微信的通道即可访问此类内容。类似于将这个小型Web网站系统嵌入到该系统中。

此处的内容可以在网页上随意找到。因此,必须在进入该位置后立即对其进行切换,但加载需要时间。因此,加载时间必须稍等微。

主页,我的类别,购物车可以识别为App应用程序。

您可以确保显示主页,我的类别和购物车,然后休眠5秒钟,尝试确保可以加载中间区域。

这里使用了14秒。 10秒也可以,因为在这里比较慢。现在打印所有当前上下文cons = driver.contexts。打印输出后,您需要切换到上下文。这次的开关不同于以前的WebView。

列出的两个WebView名称与腾讯有关。这个工具是我的选择。以前有com.tencent.mm:tool。可能会有2-3个WebView,只需输入所需的WEBVIEW_com.tencent.mm:toolsmp,这是我们在此处指定并识别的程序:

切入后,实际上是一个嵌入其中的小型应用程序系统。那么它可能有多个窗口。 小程序并不像页面中的那么简单。

可能有多个窗口,所以进入后,请放心,不要以为用肉眼可以看到它,这是当前页面。

还需要首先获取当前窗口的所有句柄,以确定要操作的元素是否在当前页面中。如果不存在,则必须更改它,因为窗口句柄代表页面。

所以我得到了所有当前窗口的句柄:hs = driver.window_handles,得到它之后,我遍历了它:

for handle in hs:
    driver.switch_to.window(handle)
#首先切换到这个窗口当中,因为我不知道哪个窗口包含了我要的元素,切换完成之后,我会判断一下
#当前这个窗口对应的页面的源码当中,有没有我要找的。比如窗口中有很多必要商城相关的,可以写必要商城相关的,各种文字都可以用,比如女装、美妆啊。
    print("切换到窗口:",handle)
    time.sleep(3)
    #print(driver.page_source)
    if driver.page_source.find("热门") !=-1:
     break

如果我发现这个词很流行,那么我认为这是我当前正在操作的页面。然后就没有后续遍历了,因为遍历过程等同于切入。如果确实满足当前条件,它将不会遍历或切换到另一个窗口,而只是在当前窗口中。

确定当前正在操作的窗口页面是什么之后,下一步是找到并操纵该元素。与Web自动化相同。注意:Chromedriver必须准备就绪。切换时,请准备Chromedriver。

二、Python第三方库Uiautomator2做微信小程序,公共帐户自动化

除了这种方式之外,还有另一种方式。它是纯Python代码,不需要那么复杂。

现在是通过Appium。 Python还有一个第三方库,例如Uiautomator2,它可以直接与Android手机通信,而无需通过Appium。 (这是由某个家庭神写的,专门支持Python)

地址:

三、FAuto Test 微信小程序,H5自动化产品的官方帐户

微信小程序的另一种自动化类型,即官方帐户H5,是在此基础上进行包装。这称为FAuto测试。

它基于Python,但有一个缺陷。目前,它仅支持Python2,尚未向Python3开放。

腾讯自己的开源框架:

您可以尝试上面官方文件中封装的代码。您可以下载2.7 Python并进行安装。 2.7和3.4没有冲突,只需安装2个版本。

但是对于环境变量,只需配置一个版本,无需匹配2.7,只需配置3.4。

运行时只能识别一个环境变量。如果您配置了两个环境变量,则仅第一个被识别,后者与没有配置相同。

编写代码时,可以选择要使用的版本。常用版本的环境变量配置为3点,不需要配置2点,直接使用即可。

四、摘要

将Appium与Python代码结合使用时,会出现更多的问题和尴尬。这段代码中的进程名称是相对固定的,并且由于小程序中实际正在执行的操作而没有固定。

但这是Web自动化。着重于以前的固定方法,对Web自动化做任何想做的事情。

分享