菜鸟教程小白 发表于 2022-12-11 19:36:09

android - 是否可以在 Appium 中为设备定义自定义功能?


                                            <p><p>例如,我们有需要启用 TouchID 的场景,也有需要禁用 TouchID 的场景。 Appium 本身并没有公开这些功能,所以我想知道是否可以为设备定义自定义功能。 </p>

<p>如果不能使用 Appium 本身,我很乐意将 Selenium Grid 放在中间,以防它提供这样的功能。</p>

<p>我们正在使用 Perfecto 在本地和云端进行测试,所以作为一个附带问题,我想知道 Perfecto 或任何其他云服务是否提供此功能。</p>

<p>所以,如果我在启动 Appiumsession 时定义以下功能:</p>

<pre><code>capabilities.touchID = &#39;enabled&#39;;
</code></pre>

<p>我会得到一个启用了 TouchID 的设备。</p>

<p>此外,TouchID 只是一个示例,我们有很多事情需要自定义功能。 </p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>可以在创建新 session 时定义自己的能力:</p>

<pre><code>caps.android = {
platformName: &#39;Android&#39;,
...
mycap: 12345
}
</code></pre>

<p>Appium 服务器将抛出它收到<em>无法识别的功能</em>的消息:</p>

<pre><code> The following capabilities were provided, but are not recognized
by appium: mycap.
Session created with session id: f672074d-ed33-49c1-a243-b8d10572608e
</code></pre>

<p>稍后在您的测试中,您可以获得能力值,例如在 wd.js 中:</p>

<pre><code>const caps = await driver.sessionCapabilities()
// caps.mycap will return 12345
</code></pre>

<p>并根据值设置您需要的逻辑,例如发送特定的 adb 命令</p>

<p>几个注意事项:</p>

<ul>
<li>Appium 服务器不知道您的功能,也无法根据自定义功能配置其逻辑。您更有可能需要在放置测试的客户端定义逻辑</li>
<li>为 session 存储的功能。如果你想改变 -> 开始新的 session </li>
</ul>

<p>大多数移动云也有自己的自定义功能,所以对于您的附带问题:</p>

<ul>
<li>查看<a href="http://developers.perfectomobile.com/display/PD/Supported+Appium+Capabilities" rel="noreferrer noopener nofollow">perfecto official documentation</a>了解他们需要哪些功能以及您的“自定义”功能是否到位。</li>
<li>Appium 有 <a href="https://github.com/appium/appium-xcuitest-driver/blob/master/docs/touch-id.md" rel="noreferrer noopener nofollow">Touch ID capability for iOS simulators</a> </li>
</ul></p>
                                   
                                                <p style="font-size: 20px;">关于android - 是否可以在 Appium 中为设备定义自定义功能?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/48230513/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/48230513/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: android - 是否可以在 Appium 中为设备定义自定义功能?