【问题标题】:unable to find a way to run my code in sauce labs real time device无法找到在酱实验室实时设备中运行我的代码的方法
【发布时间】:2021-02-26 10:20:52
【问题描述】:

如何在酱汁实验室运行下面的 Appium 代码?当我检查酱实验室网站时,下面只有一行

driver = new WebDriver(
    new URL("https://balajimscit09:a30f3417-cbe6-48ce-92b5-e9a6d0814879@ondemand.us-west-1.saucelabs.com:443")
);

下面是我的代码

package mobile_Appium;
import static io.appium.java_client.touch.TapOptions.tapOptions;
import static io.appium.java_client.touch.WaitOptions.waitOptions;
import static io.appium.java_client.touch.offset.ElementOption.element;
 
import java.io.File;
import java.net.MalformedURLException;
import java.net.URL;
import java.time.Duration;
import java.util.concurrent.TimeUnit;
 
import org.openqa.selenium.By;
import org.openqa.selenium.Dimension;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.remote.DesiredCapabilities;
 
 
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.FindsByAndroidUIAutomator;
import io.appium.java_client.MobileElement;
import io.appium.java_client.TouchAction;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidTouchAction;
import io.appium.java_client.remote.MobileCapabilityType;
import io.appium.java_client.touch.WaitOptions;
import io.appium.java_client.touch.offset.PointOption;
 
public class InstallTestAndroid10 {
 
    static AppiumDriver driver;
    

    public static void main(String[] args) throws MalformedURLException, InterruptedException {
        File f = new File("src");
        File fs = new File(f, "ApiDemos-debug.apk");
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.VERSION, "10.0");
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Device");
        cap.setCapability(MobileCapabilityType.AUTOMATION_NAME, "Uiautomator2");
        
        cap.setCapability("autoGrantPermissions", true);
        cap.setCapability("noReset", "false");
        cap.setCapability("fullReset", "true");
        
        cap.setCapability(MobileCapabilityType.APP, fs.getAbsolutePath());
        driver = new AndroidDriver<>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
        
        /*driver.findElement(By.xpath("//android.widget.Button[@text='OK']")).click();
        Thread.sleep(10000);
        
         ((FindsByAndroidUIAutomator<MobileElement>) driver).findElementByAndroidUIAutomator("new UiScrollable(new UiSelector().scrollable(true).instance(0)).scrollIntoView(new UiSelector().textContains(\"Views\").instance(0))");
        driver.findElement(By.xpath("//android.widget.TextView[@text='Views']")).click();   */
}}

如何与酱汁实验室中的真实设备集成?

【问题讨论】:

    标签: android appium appium-android saucelabs


    【解决方案1】:

    您的应用应上传到酱汁存储。 之后,应用程序功能应指向此文件。 例如: cap.setCapability(MobileCapabilityType.APP, "storage:filename=ApiDemos-debug.apk");

    您可以在此处阅读更多内容: https://wiki.saucelabs.com/display/DOCS/Application+Storage

    此外,您应该在此处发布后更改您的访问密钥

    【讨论】:

      【解决方案2】:

      在这些功能中,您似乎仍然指向本地 URL。您需要使用您的用户名和访问密钥添加酱实验室的 URL,然后上传应用程序。在此视频中查看它是如何完成的:https://www.youtube.com/watch?v=hwp5YeF5Me4

      运行 Appium 测试需要做 3 件基本的事情

      1. 将您的应用上传到 Sauce Labs,以便您的测试可以在真实设备云中针对它运行
      2. 使用您的 Sauce 用户名和访问密钥(设置为环境变量)更新您的测试代码,并使用这些来启动带有端点(或 URL)的驱动程序以进行测试
      3. Update your capabilities 用于您要测试的真实设备,包括应用名称、设备、平台版本等。
              System.out.println("Sauce iOS Native - BeforeMethod hook");
              String username = System.getenv("SAUCE_USERNAME");
              String accesskey = System.getenv("SAUCE_ACCESS_KEY");
              String sauceUrl;
              if (region.equalsIgnoreCase("eu")) {
                  sauceUrl = "@ondemand.eu-central-1.saucelabs.com:443";
              } else {
                  sauceUrl = "@ondemand.us-west-1.saucelabs.com:443";
              }
              
              String SAUCE_REMOTE_URL = "https://" + username + ":" + accesskey + sauceUrl +"/wd/hub";
              String appName = "iOS.RealDevice.SauceLabs.Mobile.Sample.app.2.7.1.ipa";
              String methodName = method.getName();
              URL url = new URL(SAUCE_REMOTE_URL);
      
              DesiredCapabilities capabilities = new DesiredCapabilities();
              capabilities.setCapability("deviceName", "iPhone 8.*");
              capabilities.setCapability("platformName", "iOS");
              capabilities.setCapability("automationName", "XCuiTest");
              capabilities.setCapability("app", "storage:filename="+appName); // or "storage:"+appID
              capabilities.setCapability("name", methodName);
              iosDriver.set(new IOSDriver(url, capabilities));
      

      【讨论】:

        猜你喜欢
        • 2022-06-30
        • 1970-01-01
        • 2020-09-19
        • 2012-05-26
        • 2020-08-06
        • 2015-04-16
        • 2019-06-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多