<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 自動化測試移動端 web 應用 如果你有興趣在 iOS 系統上的 Safari 瀏覽器或者 Android 系統上的 Chrome 瀏覽器進行網頁自動化的話 ,Appium可以幫到你。你只要正常地寫 WebDriver 測試,通過對 desired capabilities 進行一些特殊的設置,可以把 Appium 當成 Selenium 服務來運行。 ### iOS 移動 web 自動化 Appium 可以在真實或模擬的 iOS 設備上的 Safari 瀏覽器上進行自動化。通過將 [desired capabilty](../writing-running-appium/caps.md) 中的 `browserName` 的值設置為 `"Safari"` 同時將 `app` 功能留空。 在嘗試運行 Appium 之前,你**必須**要先在設備上運行 Safari ,以確保相關參數已經被正確的設置。 然后,你就可以在移動端設備上的 Safari 瀏覽器上通過設置 desired capabilities 來運行你的測試。 ```javascript // javascript { platformName: 'iOS' , platformVersion: '13.2' , automationName: 'XCUITest' , browserName: 'Safari' , deviceName: 'iPhone 11' } ``` ```python # python { 'platformName': 'iOS', 'platformVersion': '13.2', 'automationName': 'XCUITest', 'browserName': 'Safari', 'deviceName': 'iPhone 11' } ``` ```php // php public static $browsers = array( array( 'desiredCapabilities' => array( 'platformName' => 'iOS', 'platformVersion' => '13.2', 'automationName' => 'XCUITest', 'browserName' => 'Safari', 'deviceName' => 'iPhone 11' ) ) ); ``` ```java // java DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "13.2"); capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest"); capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari"); capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 11"); ``` ```ruby { platformName: 'iOS', platformVersion: '13.2', automationName: 'XCUITest', deviceName: 'iPhone 11', browserName: 'Safari' } ``` ### iOS 虛擬機上的移動端 Safari 首先,確定你的 Safari 開發者模式開啟,移動調試端口打開。 ### iOS 真機上的移動端 Safari 在 [iOS 9.3 及以下版本](../drivers/ios-uiautomation.md) (pre-XCUITest)版本系統,我們借助 [SafariLauncher App](https://github.com/snevesbarros/SafariLauncher) 應用在移動端 Safari 運行測試。 這是因為Safari是蘋果公司的應用,Instruments 不能在真機上拉起 Safari。SafariLuncher 可以幫助打開 Safari 瀏覽器,瀏覽器一旦打開,Remote Debugger 會通過 [ios-webkit-debug-proxy](https://github.com/google/ios-webkit-debug-proxy) 自動連接。在 `ios-webkit-debug-proxy` 運行時, 必須在你的iOS設備測試前,對這臺設備進行授權。 指導如何安裝和運行 ios-webkit-debugger-proxy ,可以查閱 [iOS WebKit debug proxy](../writing-running-appium/web/ios-webkit-debug-proxy.md) ### 安裝 在真實上運行測試前,你需要: * 安裝好 **ios-webkit-debug-proxy**,運行并在 27753 接口開啟監聽。(查閱 [hybrid 文檔](../writing-running-appium/web/hybrid.md#execution-against-a-real-ios-device) 作為指導) * 在 iOS 設備上開啟 **web inspector**(設置>safari>高級) * `XCUITest` 和 `Instruments` * 在 iOS 設備上開啟 **web inspector**(設置>safari>高級) * 只有 `Instruments`時 * 安裝好 **ios-webkit-debug-proxy**,運行并在 27753 接口開啟監聽。 (詳情見以下文檔 [hybrid docs](../writing-running-appium/web/hybrid.md#execution-against-an-ios-real-device) ) * 確保 `SafariLauncher` 能正常工作 (詳情見以下文檔 [SafariLauncher docs](../drivers/ios-uiautomation-safari-launcher.md) ) ### 運行你的測試 在 Safari 運行你的測試,只需簡單地設置 `"browserName"` 為 `"Safari"` 。 ```java // java //設置web driver并啟動 webview 應用。 DesiredCapabilities desiredCapabilities = new DesiredCapabilities(); desiredCapabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Safari"); URL url = new URL("http://127.0.0.1:4723/wd/hub"); AppiumDriver driver = new AppiumDriver(url, desiredCapabilities); // 瀏覽網頁和定位頁面元素取得id。 driver.get("http://saucelabs.com/test/guinea-pig"); WebElement div = driver.findElement(By.id("i_am_an_id")); Assert.assertEquals("I am a div", div.getText()); //檢查檢索到的文本是否與預期值匹配 driver.findElement(By.id("comments")).sendKeys("My comment"); //按 id 填充 comments 字段。 //關閉瀏覽器 driver.quit(); ``` ```python # python # 建立web driver,開啟瀏覽器app。 capabilities = { 'browserName': 'Safari', 'automationName': 'XCUITest' } driver = webdriver.Remote('http://localhost:4723/wd/hub', capabilities) # 瀏覽網頁和定位頁面元素取得id。 driver.get('http://saucelabs.com/test/guinea-pig'); div = driver.find_element_by_id('i_am_an_id') # 檢查文本是否匹配值 assertEqual('I am a div', div.text) # 通過元素id填值。 driver.find_element_by_id('comments').send_keys('My comment') # 關閉瀏覽器。 driver.quit() ``` ```php // php class ContextTests extends PHPUnit_Extensions_AppiumTestCase { public static $browsers = array( array( 'desiredCapabilities' => array( 'platformName' => 'iOS', 'platformVersion' => '7.1', 'automationName' => 'XCUITest', 'browserName' => 'Safari', 'deviceName' => 'iPhone 11' ) ) ); public function testThings() { $this->get('http://saucelabs.com/test/guinea-pig'); $div = $this->byId('i_am_an_id'); $this->assertEquals('I am a div', $div->text()); $this->byId('comments')->sendKeys('My comment'); } } ``` ### Android 移動 web 自動化 無論是在真實還是模擬的 Android 設備上,Appium 都支持 Chrome 瀏覽器的自動化。 先決條件: *確保 Chrome 瀏覽器已經安裝在你的真實或虛擬的安卓設備上。 *需要安裝好ChromeDriver(來自 Appium 的默認版本) 并且配置好用于自動化設備上可用的特定版本的 Chrome 。點擊 [這里](../../writing-running-appium/web/chromedriver.md) 去了解更多關于兼容性的詳細信息。 然后使用 [desired capabilties](../writing-running-appium/caps.md) 像下面的例子去 Chrome 瀏覽器上運行你的測試。 ```javascript // javascript { platformName: 'Android' , platformVersion: '9.0' , deviceName: 'Android Emulator' , automationName: 'UIAutomator2' , browserName: 'Chrome' }; ``` ```python # python { 'platformName': 'Android', 'platformVersion': '9.0', 'deviceName': 'Android Emulator', 'automationName': 'UIAutomator2', 'browserName': 'Chrome' } ``` ```php // php public static $browsers = array( array( 'desiredCapabilities' => array( 'platformName' => 'Android', 'platformVersion' => '9.0', 'browserName' => 'Chrome', 'automationName' => 'UIAutomator2', 'deviceName' => 'Android Emulator' ) ) ); ``` ```java // java DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android"); capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "9.0"); capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator"); capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "UIAutomator2"); capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome"); ``` ```ruby { platformName: 'Android', platformVersion: '9.0', deviceName: 'Android Emulator', automationName: 'UIAutomator2', browserName: 'Chrome' } ``` 注意:在 4.4+ 版本的設備上,你也可以將 `browserName` 設置為 'Browser' 在內建的瀏覽器上運行自動化。設置瀏覽器為 'Chromium' 是在所有設備可以運行的。在所有設備上,你可以將 `browserName` 設置為 'Chromium' 來對 Chromium 的某個版本進行自動化。 #### Chromedriver 的障礙排除 如果你的測試目標要求更新的 ChromeDriver 版本時,ChromeDriver 的這一特性 [chromedriver_自動下載](../writing-running-appium/web/chromedriver.md#automatic-discovery-of-compatible-chromedriver) 會幫到你。這一特性在 Appium 1.15.0的安全性選項中已經能夠使用。你可以通過點擊文件的鏈接去學習如何使用它。 當你需要特定版本的 ChromeDriver 時,`chromedriverExecutableDir` 這一功能能幫到你。 截止 Chrome Version 33,設備不再需要被 root。在這之前,設備需要被 root,因為 ChromeDriver 設置啟動 Chrome 的命令行參數需要在 `/data/local` 目錄的寫入權限。 如果在 Chrome 低于 33 版本上測試,請確保 `adb shell` 有設備讀取/寫入 `/data/local` 權限。 ```center $ adb shell su -c chmod 777 /data/local ``` 這里提及下 Chromedriver 有個功能 `showChromedriverLog`,當你將其設置為 `true`時,Appium 日志會一起寫入 Chromedriver 日志中。這對我們的調試十分有幫助。 更多 chromedriver 文檔參見(https://sites.google.com/a/chromium.org/chromedriver/getting-started/getting-started---android) 本文由 [CrazyForPoor](https://github.com/CrazyForPoor) 翻譯。
                  <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>

                              哎呀哎呀视频在线观看