是否可以并行使用Selenium的RemoteWebDriver和Appium的AppiumDriver?

时间:2014-11-28 10:25:43

标签: android selenium appium remotewebdriver

我试图编写一些测试脚本,涉及通过Chrome上传文件。我使用Selenium的RemoteWebDriver在Samsung Note 10设备上使用Chrome测试网络应用程序。

我设法编写脚本直到点击文件上传按钮,然后调出文件上传控件,询问我要上传哪种类型的文件。但是,由于这不是Web控件,因此我无法使用RemoteWebDriver与其进行交互。我试图创建一个新的AppiumDriver实例,但由于RemoteWebDriver的实例已经存在,我无法创建AppiumDriver的新实例。

无论如何我可以解决这个问题吗?我尝试将RemoteWebDriver转换为AppiumDriver(尽管觉得它不会起作用),但这是不可能的。

1 个答案:

答案 0 :(得分:0)

您可以使用AndroidDriver初始化而不是RemoteWebDriver开始测试。

这样做的原因是它的实施:

AndroidDriver extends AppiumDriver extends DefaultGenericMobileDriver extends RemoteWebDriver

所以,你会有类似的东西:

WebDriver driver = new AndroidDriver(new URL(YOUR_REMOTE_MACHINE_HUB_URL), capabilities);

现在,您可以使用AppiumDriver方法。您可以使用WebDriver为此提供的内置技术上传文件。
它背后的主要思想是直接将文件的绝对路径发送到一个元素,你通常会点击该元素来获取模态窗口 - 即<input type='file' />元素。

WebElement fileInput = driver.findElement(By.xpath("//input[@type='file']"));
fileInput.sendKeys("C:/file_to_upload.jpg");