我想通过使用selenium网格在两个设备上做并行执行。从建立JSON开始,每台设备都运行Appium Desktop。
与Appium建立的连接:
public class ApplicationHandling {
public static AndroidDriver driver;
public static ExtentTest test;
public static ExtentReports extent;
//public static boolean waitForPresenceOfElelment;
public static ConfigFileReader cfg;
public ApplicationHandling()
{
cfg = new ConfigFileReader();
System.out.println("Inside application handling constructor");
Date date=new Date();
SimpleDateFormat dateFormatFolder = new SimpleDateFormat("dd_MMM_yyyy");
File ResultDir = new File(System.getProperty("user.dir")+File.separator+"/FrameworkReports/"+dateFormatFolder.format(date));
System.out.println(ResultDir);
// Defining Directory/Folder Name
if (!ResultDir.exists()){ // Checks that Directory/Folder Doesn't Exists!
ResultDir.mkdir();
}
SimpleDateFormat dateFormat=new SimpleDateFormat("dd_MMM_yyyy_hh_mm_ssaa");
extent=new ExtentReports(ResultDir +"/" +"Report"+""+dateFormat.format(date)+".html",false);
}
public static RemoteWebDriver getInstance()
{
System.out.println("remote webdriver");
return driver;
}
@Parameters({"device","version"})
@BeforeTest(alwaysRun = true)
public static void setUp(String device,String version) throws MalformedURLException, InterruptedException {
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability("platformName", "Android");
cap.setCapability("deviceName", device);
cap.setCapability("noReset", true);
cap.setCapability(CapabilityType.VERSION,version);
cap.setCapability("automationName", cfg.getAutomationName());
cap.setCapability ("appPackage", cfg.getAppPackage());
cap.setCapability ("appActivity", cfg.getAppActivity());
System.out.println("Before Suite Execution started");
System.out.println("Driver:"+driver);
System.out.println("URL:"+cfg.getApplicationUrl());
System.out.println("cap: "+cap);
driver = new AndroidDriver<MobileElement>(new URL(cfg.getApplicationUrl()), cap);
System.out.println(driver);
}
{
"capabilities":
[
{
"deviceName": "Redmi",
"platformName": "Windows",
"browserName":"Android",
"platformVersion": "7.0",
"maxInstances": 1
}
],
"configuration":
{
"cleanUpCycle":2000,
"timeout":30000,
"proxy": "org.openqa.grid.selenium.proxy.DefaultRemoteProxy",
"url":"http://0.0.0.0:4723/wd/hub",
"host": "0.0.0.0",
"port": 4723
"maxSession": 1,
"register": true,
"registerCycle": 5000,
"hubPort": "4444",
"hubHost": "127.0.0.1"
}
}
<test name="test_redmi">
<parameter name="device" value="Redmi"/>
<parameter name="version" value="7.0"/>
<classes>
<class name="Tests.LoginTest">
<methods>
<include name="loginOTP"/>
</methods>
</class>
</classes>
->它给我在创建Driver实例时的错误。
我最近从Appium Desktop转到Appium Studio,因为它们支持并行执行,并且有用于设置不同语言框架的插件,如Java、C#、Ruby等等。有关并行执行的更多信息,请阅读本文档。
我正试图使用Selenium Grid启动一款新的Chrome浏览器,但最终出现以下错误 无法创建新的远程会话。所需功能=能力[{浏览器名称=chrome,版本=55.0.2,平台=WINDOWS}],所需功能=能力[{}]构建信息:版本:“3.0.1”,修订版本:“1969d75”,时间:“2016-10-18 09:49:13 -0700”系统信息:主机:“PL9710388”,ip:“10.
当我尝试运行测试时,我得到这个错误。 sessionNotCreatedException:无法创建新的远程会话。所需功能=功能[{PlatformName=Android,DeviceName=F4AZFG07P508}],所需功能=功能[{}]生成信息:版本:“3.3.1”,修订版:“5234B325D5”,时间:“2017-03-10 09:10:29+0000”系统信息:主机:“MacBo
null 我的脚本中使用的代码: 详细的堆栈跟踪: an 19,2017 6:07:36 PM org.openqa.selenium.remote.ProtocolHandshake创建session信息:尝试双方言会话,假设Postel定律在远程端成立,Jan 19,2017 6:07:37 PM org.openqa.selenium.remote.ProtocolHandshake创建se
问题内容: 我正在尝试从集线器到节点运行一个简单的代码,集线器和节点连接成功。 执行程序时出现异常 我提到的Chrome驱动程序路径是可以从节点计算机访问的共享路径。 Chrome版本:58.0.3029.110 Chrome驱动程序版本:2.9 集线器和节点都是远程计算机。 下面是使用的代码: 下面是控制台消息: 问题答案: 这是您问题的答案: 当您使用以下命令启动 Selenium Grid
我正在学习Appium,我无法使用以下功能创建远程会话。虽然>功能在模拟设备上的Appium server本身中工作 线程“main”org.openqa.selenium.sessionNotCreatedException中出现异常:无法创建新的远程会话。原始错误:127.0.0.0.1生成信息:版本:“3.141.59”,修订版:“E82BE7D358”,时间:“2018-11-14T08:
我正在尝试使用Selenium Grid在不同的机器(Windows 10)上启动Firefox(51.0.1版)、Chrome(56.0.2924.87版)、Edge(38.14393.0.0版)**和Opera(43.0版)**。它在Chrome浏览器上运行良好,但在其他浏览器上总是会出现一些问题。请查看以下错误消息: 组织。openqa。硒。SessionNotCreatedExceptio