<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 執行Driver腳本 針對當前會話(session)運行WebdriverIO腳本,允許在一個Appium請求中執行多條命令。 ## 使用樣例 ```java // Java String script = "const el = await driver.$('~foo');\n" + "await el.click();" driver.executeDriverScript(script, new ScriptOptions().withTimeout(200)); ``` ```python # Python # TODO fill out once client code is written ``` ```javascript // Javascript // webdriver.io example const script = ` const el = await driver.$('~foo'); await el.click(); `; await driver.executeDriver(script); // wd example const script = ` const el = await driver.$('~foo'); await el.click(); `; await driver.executeDriver(script, {timeout: 200}); ``` ```ruby # Ruby # ruby_lib example # TODO fill out once client code is written # ruby_lib_core example # TODO fill out once client code is written ``` ```php # PHP // TODO PHP sample ``` ```csharp // C# // TODO C# sample ``` ## 描述 Appium的客戶機-服務器體系(C/S)結構的一個缺點是每個命令都必須在網絡上傳輸,可能會有很高的延遲。尤其是Appium會話發生在服務提供商的主機上而不是在本地進行的情況下。 這個命令允許將多個命令組成批處理形式,以便在Appium服務器上一次性執行。實現這一點的方法是基于`executeScript`模型:客戶端將發送一個表示要執行的代碼的字符串。Appium服務器將在當前會話(session)的上下文中執行該代碼,并返回腳本指定的任何值。 這個命令接收三個參數(每個客戶端可能以其自己的方式收集): * `script`:由腳本本身組成的字符串 * `timeout`:表示在終止運行程序腳本的進程之前要等待的毫秒數。默認值等于1小時。 * `type`:表示腳本所使用的語言或API的類型的字符串。現在只支持一種類型,`webdriveio`。 Not just any code can run in this context. The code must be written in Javascript, and it will have access to a context with three objects 并不是任意代碼都能在這個環境中運行。代碼必須用JavaScript編寫,并可以訪問有以下三個對象的環境。 * `driver`:[WebdriverIO](https://webdriver.io/) driver對象。可以假設這個driver已經與Appium server建立連接并已經可以執行命令。安裝使用的WebdriverIO版本是根據 `appium-base-driver`的 `package.json`中指定的版本。 * `console`: 一個有`log`, `warn`和 `error`方法的定制`console`對象,可以進行日志記錄。 * `Promise`: 一個Promise庫 ([Bluebird](http://bluebirdjs.com/docs/getting-started.html)), 用來簡化異步操作。 代碼會下面的例子所示,放在一個`async`函數中,所以你可以隨意使用`await`: ```js (async function (driver, console, Promise) { // --> your script here <-- })() ``` 任何錯誤都會導致給命令的調用方一個錯誤類型的響應。任何返回值都會被按照下面的形式進行包裝并返回給客戶端: ```js {result: <return value>, logs: {log: [], warn: [], error: []}} ``` 使用響應對象,你可以同時獲得返回值以及你編寫的所有日志語句。 The advantage of this approach of using WebdriverIO code is that you have access to a full programming language and Appium API, and can use any language or API features you need, including loops, conditionals, and explicit waits. The WebdriverIO API cannot be enumerated here, so visit the [WebdriverIO documentation](https://webdriver.io/docs/api.html) for more info. 這樣使用WebdriverIO代碼的方法的優勢在于,你可以使用完整的編程語言和Appium API,并且可以使用任何你需要的語言或API特性,包括循環、條件語句和顯式等待。無法在這里列舉webdririo API,因此請訪問[WebdriverIO 文檔](https://webdriver.io/docs/api.html)以獲取更多信息。 ## 支持 ### Appium Server | 平臺 | Driver | 平臺版本 | Appium版本 | Driver版本 | |--------|----------------|------|--------------|--------------| | iOS | [XCUITest](../../drivers/ios-xcuitest.md) | 9.3+ | 1.6.0+ | All | | | [UIAutomation](../../drivers/ios-uiautomation.md) | 8.0 to 9.3 | All | All | | Android | [UiAutomator2](../../drivers/android-uiautomator2.md) | ?+ | 1.6.0+ | All | | | [Espresso](../../drivers/android-espresso.md) | ?+ | 1.9.0+ | All | | | [UiAutomator](../../drivers/android-uiautomator.md) | 4.3+ | All | All | | Mac | [Mac](../../drivers/mac.md) | ?+ | 1.6.4+ | All | | Windows | [Windows](../../drivers/windows.md) | 10+ | 1.6.0+ | All | ### Appium客戶端 | 語言 | 支持版本 | 文檔 | |--------|-------|-------------| |[Java](https://github.com/appium/java-client/releases/latest)| All | [javadoc.io](https://javadoc.io/page/io.appium/java-client/latest/io/appium/java_client/ExecutesDriverScript.html#executeDriverScript-java.lang.String-io.appium.java_client.driverscripts.ScriptOptions-) | |[Python](https://github.com/appium/python-client/releases/latest)| None | | |[Javascript (WebdriverIO)](http://webdriver.io/index.html)| None | | |[Javascript (WD)](https://github.com/admc/wd/releases/latest)| None | | |[Ruby](https://github.com/appium/ruby_lib/releases/latest)| None | | |[PHP](https://github.com/appium/php-client/releases/latest)| None | | |[C#](https://github.com/appium/appium-dotnet-driver/releases/latest)| None | | ## HTTP API規范 ### 終端 `POST /session/:session_id/appium/execute_driver` ### URL參數 | 名稱 | 描述 | |----|-----------| |session_id|將指令發往的會話(session)的ID| ### JSON參數 | 名稱 | 類型 | 描述 | |----|----|-----------| | script | `string` | 需要執行的webdriverio腳本 | | type | `string` | 腳本類型名稱。現在只支持 'webdriverio' | | timeout | `number` | Appium應該等待腳本執行完成的毫秒值。超過這個時間,Appium會由于超時而終止腳本的執行。 | ### 響應 腳本的執行結果。結果包含兩部分:`result` and `logs`。result是腳本執行后的返回值。logs包含腳本輸出在控制臺中的所有內容。 (`any`) ## 參考 無 本文由 [KangarooChen](https://github.com/KangarooChen) 翻譯,Last english version: 1be5bd8c1e22fe46188dd9c498766ae587c88887, 4 Mar 2020
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看