Chrome 浏览器无法使用 Java 在 Appium 中启动

Posted

技术标签:

【中文标题】Chrome 浏览器无法使用 Java 在 Appium 中启动【英文标题】:Chrome browser fails to launch in Appium using Java 【发布时间】:2020-09-16 13:48:25 【问题描述】:

请有人帮我解决这个问题。提前致谢。 在模拟器中运行 java 代码打开 chrome 浏览器时,我收到“无法启动 Chromedriver 会话:无法创建新会话。详细信息:未创建会话:此版本的 ChromeDriver 仅支持 Chrome 版本 83”错误消息。

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();
    

线程“main”中的异常 org.openqa.selenium.SessionNotCreatedException:无法创建新的 远程会话。请检查服务器日志以获取更多详细信息。原版的 错误:处理时发生未知的服务器端错误 命令。原始错误:无法创建新会话。细节: 未创建会话:此版本的 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.version:AndroidDriver 远程堆栈跟踪:UnknownError:处理命令时发生未知的服务器端错误。原始错误:新会话 无法创建。详细信息:会话未创建:此版本 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', java.version: '1.8.0_231'

【问题讨论】:

【参考方案1】:

Android 上的 Chrome 浏览器具有包名称 com.android.chrome 和活动名称 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 浏览器。

参考:How to find appPackage and appActivity name of your App

【讨论】:

这很有帮助,但出现了另一个错误,如下所述。你能提出任何答案吗? @manish 尝试添加更多秒数:.implicitlyWait(60, TimeUnit.SECONDS);。顺便说一句,您可以编辑您的问题,而不是作为答案发布。点击问题下方的edit

以上是关于Chrome 浏览器无法使用 Java 在 Appium 中启动的主要内容,如果未能解决你的问题,请参考以下文章

chrome怎么打开postman

谷歌chrome浏览器设置在哪,怎么使用

使用 JavaScript / JQuery 将 html 表数据导出到 Excel 在 Chrome 浏览器中无法正常工作

Webview页面的控件元素定位

谷歌浏览器chrome看不了在线视频怎么破?

怎么使用chrome调试andriod app(Hybrid App)