Tag: appium

我如何在Android和iOS上使用相同的Cucumber步骤定义

我目前正在为Android和iOS的stream程和devise开始一个应用程序的自动化项目。 我正在使用与Cucumber框架的Ruby。 我已经开始自动化Android,基本上我需要做的是每个步骤的定义,为Android和ios单独的代码有点像这样的伪代码: Then (/^I click the Login Button$/) do if mobile_platform = android #android locators and code here else #iOS locators and code here end end 我将如何去设置我的项目,以允许这样的具体步骤定义的用法? 为每个操作系统分别设置特征和步骤定义,而不是试图将它们融合在一起更好? 感谢您能给我的任何和所有的帮助。

如果只是颜色发生变化,如何检测一个Webelement的状态

我的问题是这样的:我有一个应用程序,我必须决定一个元素的状态。 元素可以有两个状态,位置编号1 – 它在位置编号2有黑色背景 – 它有白色背景。 没有其他的变化,也没有它的大小,也没有价值,也没有它的名字,也没有可见性,也没有启用值没有什么…只有它的背景颜色。 想象一下,如果你在屏幕上有一个button,点击它,只会改变它的背景。 你知道我能做些什么来获得这个webelement的状态吗?

真正的iOS设备上的Appium

我正在Appium和iPad 2中使用以下所需的function DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability("udid", "ea56e8ae8e5f5235c16d5315f4cb34d81be55917"); capabilities.setCapability("platformName", "iOS"); capabilities.setCapability("deviceName", "iPad 2"); capabilities.setCapability("platformVersion", "8.3"); capabilities.setCapability("app", "/Users/Aress-QA/Desktop/PSt-forQA.ipa"); capabilities.setCapability("platformName", "iOS"); wd = new IOSDriver(new URL("http://0.0.0.0:4723/wd/hub"),capabilities); wd.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS); 应用程序启动后崩溃,Appium控制台显示以下错误, info: [debug] [INST STDERR] 2015-11-04 14:51:55.082 instruments[9690:170378] WebKit Threading Violation – initial use of WebKit from a secondary thread. info: [debug] [INST STDERR] 2015-11-04 14:51:55.984 instruments[9690:170400] Attempting […]

无法在真实设备上的iOS 10上运行Appiumtesting

由于更新我的设备和Xcode到iOS 10和Xcode 8,我一直无法成功地设置真实设备上的Appiumtesting。 不过,我在模拟器上正常工作。 以下是我的function设置: DesiredCapabilities cap = new DesiredCapabilities(); File f = new File("/Path/App.ipa"); cap.setCapability(MobileCapabilityType.APPIUM_VERSION, "1.6.0"); cap.setCapability(MobileCapabilityType.PLATFORM_NAME, "iOS"); cap.setCapability(MobileCapabilityType.PLATFORM_VERSION, "10.1.1"); cap.setCapability(MobileCapabilityType.DEVICE_NAME, "iPhone 6 (Model MG472B/A)"); cap.setCapability(MobileCapabilityType.UDID, "20a548dc87a87ecddf7ab3975a4b5f3395ac1a0"); cap.setCapability(MobileCapabilityType.APP,f.getAbsolutePath()); cap.setCapability("bundleId", "co.uk.xx"); cap.setCapability(MobileCapabilityType.AUTOMATION_NAME,"XCUITest"); cap.setCapability("noReset", "true"); try { driver = new IOSDriver<WebElement>(new URL("http://127.0.0.1:4723/wd/hub"), cap); } catch (MalformedURLException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } […]

如何在iOS模拟器上启动appiumtesting?

我有以下设置,并试图在iOS模拟器上开始testing…我是一个初学者,不知道如何开始testing。 我已经从教程中导入并安装了appium,但是不知道如何开始testing。 问题是:这个设置是否正确? 如何运行testing? import java.io.File; import java.net.URL; import java.util.HashMap; import java.util.List; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import org.testng.Assert; import org.testng.annotations.AfterMethod; import org.testng.annotations.BeforeMethod; import org.testng.annotations.Test; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; public class AppiumDriver { private static final String JavascriptExecutor = null; public WebDriver driver = null; @BeforeMethod […]

Appium安装程序 – no ./reset.sh文件

我正在尝试设置Appium并遵循教程 。 我到了cd appium; ./reset.sh 安装Ruby的 cd appium; ./reset.sh行。 我没有任何地方的reset.sh文件。 我已经安装了所有先前的步骤,以及XCode和Android Dev Studio 。 所以我试图跳过这一步,只是运行node . appium node . ,这会引发错误: 错误:找不到模块'/ Users / myname / Sites / myproject / appium 显然,它需要一个server.js或app.js文件,但git clone git://github.com/appium/appium.git回购克隆没有一个。 我是通过培训的networking开发人员,但我的任务是做QA。 我不确定我应该采取哪些其他步骤来获得Appium。 我只是想让它运行,所以我可以开始编写testingfunctiontesting用例。

如何隐藏键盘而不使用Appium for IOSclosures对话框?

我有一个对话框出现,同时用hideKeyboard();closures键盘hideKeyboard(); 所有的表单都closures了,我回到主页,这样我就无法继续填充其他数据。 这里的屏幕:

我应该使用哪种方法(最快)来select元素?

那么有很多不同的方法来select驱动之间的元素。 我想知道哪一个是最快和最适合本机的应用程序(iOS和Android)。 有了Appium驱动程序类,有: findElementByAccessibilityId(String using) 移动课程有: findElement(org.openqa.selenium.By by) //with ById/Xpath/Name/ClassName… 使用Android和iOS驱动程序类有: findElementByAndroidUIAutomator(String using) findElementByIosUIAutomation(String using) 使用RemoteWebDriver类有: findElementById(); findElementByXPath(); findElementById(); //css, className etc… -> WebElement which can be cast in mobileElement 所以我猜测使用selendroid和selendroid更快,但Android 2.3+需要Android 2.3+ 。 你怎么做,为什么? 你能否提供一些findElementByAndroidUIAutomator(String using)和findElementByIosUIAutomation(String using) 我看到XPathselect器存在一些问题。 从我的angular度来看,使用findElement(By.name)似乎很简单。

在使用appium时,我们如何将设备方向更改为横向模式?

在使用appiumtestingAngular JS中使用量angular器编码的移动应用程序时,我们如何将模拟器方向更改为横向模式? 我在config.js文件中添加了: 'deviceorientation': 'landscape', 。 但是,当我运行它并没有改变。

错误:目标无法运行:debuggingcom.apple.Preferences的权限被拒绝

在Appium上运行第一个testing,并在日志中出现错误。 Appium version 1.4.13 xcode version 7.2 带有appium的iOS设置: http ://screenpresso.com/ = nD2Cf。 这是我的Java代码: import io.appium.java_client.AppiumDriver; import io.appium.java_client.MobileElement; import io.appium.java_client.ios.IOSDriver; import io.appium.java_client.remote.MobileCapabilityType; import org.openqa.selenium.WebDriver; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import java.net.MalformedURLException; import java.net.URL; import java.util.concurrent.TimeUnit; /** * Created by betbull on 1/29/16. */ public class Runing { public static AppiumDriver wd; public static void main(String[] args) throws […]