簡體   English   中英

Chrome 瀏覽器無法使用 Java 在 Appium 中啟動

[英]Chrome browser fails to launch in Appium using Java

有人請幫我解決這個問題。 提前致謝。 While running java code to open chrome browser in Emulator, I am getting "Failed to start Chromedriver session: A new session could not be created. Details: session not created: This version of ChromeDriver only supports Chrome version 83" error message.

public class ChromeBrowserLaunch {
    AppiumDriver driver;
    public static void main(String[] args) throws MalformedURLException {   
        DesiredCapabilities cap = new DesiredCapabilities();
        cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Pixel");
        cap.setCapability(MobileCapabilityType.VERSION, "8.0");
        cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
        cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
        cap.setCapability("chromedriverExecutable", "D:\\chromedriver\\chromedriver\\chromedriver.exe");
        driver = new AndroidDriver<MobileElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap);
        driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);    
        driver.get("http://facebook.com");
        driver.findElementByXPath("//*[@id=\"m_login_email\"]").sendKeys("geeta");
        driver.findElementByXPath("//*[@id='m_login_password']").sendKeys("geeta");
        driver.hideKeyboard();
        driver.findElement(By.id("signup-button")).click();
    }
}

線程“主”org.openqa.selenium.SessionNotCreatedException 中的異常:無法創建新的遠程 session。 請檢查服務器日志以獲取更多詳細信息。 原始錯誤:處理命令時發生未知的服務器端錯誤。 原始錯誤:無法創建新的 session。 詳細信息:session 未創建:此版本的 ChromeDriver 僅支持 Chrome 版本 83 構建信息:版本:'3.141.59',修訂:'e82be7d358',時間:'2018-11-14T08:17:03' 系統信息:主機: 'DESKTOP-R5U0RRK', ip: '192.168.0.106', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_231' Driver info :driver.version:AndroidDriver遠程堆棧跟蹤:UnknownError:處理命令時發生未知的服務器端錯誤。 原始錯誤:無法創建新的 session。 詳細信息:session 未創建:此版本的 ChromeDriver 僅支持 Chrome 版本 83 在 getResponseForW3CError (C:\Users\admin\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib \protocol\errors.js:804:9) 在 asyncHandler (C:\Users\admin\AppData\Local\Programs\Appium\resources\app\node_modules\appium\node_modules\appium-base-driver\lib\protocol\protocol .js:388:37) 在 process._tickCallback (internal/process/next_tick.js:68:7) 構建信息:版本:'3.141.59',修訂:'e82be7d358',時間:'2018-11-14T08: 17:03' 系統信息:主機:'DESKTOP-R5U0RRK',ip:'192.168.0.106',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',Z9121C44FFEZ48B3833833版本:'1.8.0_231'

Chrome browser on Android has the package name com.android.chrome and the name of the activity com.google.android.apps.chrome.Main

在 Appium 中,您不需要瀏覽器可執行文件來打開像 Selenium 這樣的瀏覽器,因此只需在您的功能中添加.APP_PACKAGE.APP_ACTIVITY ,如下所示:

cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.android.chrome");
cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.google.android.apps.chrome.Main");

導入后:

import io.appium.java_client.remote.AndroidMobileCapabilityType;

從您的代碼中刪除這一行:

cap.setCapability("chromedriverExecutable", "D:\\chromedriver\\chromedriver\\chromedriver.exe");

注意:確保設備上安裝了 chrome 瀏覽器。

參考: 如何找到你的 App 的 appPackage 和 appActivity 名稱

如果我使用 .APP_PACKAGE 和 .APP_ACTIVITY 等功能,它不會在跨平台框架中讀取正確的定位器。

@FindBy(xpath="//input[@data-testid='sign-in-email-field']")
@AndroidFindBy(accessibility = "sign-in-email-field")
@iOSXCUITFindBy(accessibility = "sign-in-email-field")  
public MobileElement txt_email;

當測試在 chrome 上運行時,我希望讀取 @Findby,但它讀取的是 @AndroidFindBy。 知道如何讓 appium 讀取具有以下功能的 @FindBy 定位器

        cap.setCapability("deviceName", config.emulatorAndroidDeviceName);
        cap.setCapability("udid", config.emulatorAndroidUdid);
        cap.setCapability("platformName", config.emulatorAndroidPlatformName);
        cap.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.android.chrome");
        cap.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY, "com.google.android.apps.chrome.Main");

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM