Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我们什么时候使用触摸动作?我可以用它输入文本的实际例子吗?_Java_Automated Tests_Appium - Fatal编程技术网

Java 我们什么时候使用触摸动作?我可以用它输入文本的实际例子吗?

Java 我们什么时候使用触摸动作?我可以用它输入文本的实际例子吗?,java,automated-tests,appium,Java,Automated Tests,Appium,我想问一下,我们什么时候在Appium中使用触摸动作。我还想问:我们是否可以使用touch操作点击/按下android.widget.EditText元素并向其发送键。我可以用一个可行的例子来测试它吗?只要我们想点击/轻触设备上的特定元素,我们就会使用触摸动作 用于单击 您可以对EditText元素使用触摸操作,如下所示: driver.findElement(By.xpath("your element xpath/id")).click(); 用于打字 此外,您还可以对EditText元素

我想问一下,我们什么时候在Appium中使用触摸动作。我还想问:我们是否可以使用touch操作点击/按下android.widget.EditText元素并向其发送键。我可以用一个可行的例子来测试它吗?

只要我们想点击/轻触设备上的特定元素,我们就会使用触摸动作

用于单击

您可以对EditText元素使用触摸操作,如下所示:

driver.findElement(By.xpath("your element xpath/id")).click();
用于打字

此外,您还可以对EditText元素使用sendKeys,如下所示: 此内部命令单击元素,清除文本并键入要发送的字符串

driver.findElement(By.xpath("your element xpath/id")).sendKeys("textToBeTyped");

您可以分别单击和发送键,而无需清除文本元素中的现有文本,如下所示:

driver.findElement(By.xpath("your element xpath/id")).click();
driver.getKeyboard().sendKeys(textToBeTyped);

每当我们想在设备上的特定元素上单击/轻触时,我们都会使用触摸动作

用于单击

您可以对EditText元素使用触摸操作,如下所示:

driver.findElement(By.xpath("your element xpath/id")).click();
用于打字

此外,您还可以对EditText元素使用sendKeys,如下所示: 此内部命令单击元素,清除文本并键入要发送的字符串

driver.findElement(By.xpath("your element xpath/id")).sendKeys("textToBeTyped");

您可以分别单击和发送键,而无需清除文本元素中的现有文本,如下所示:

driver.findElement(By.xpath("your element xpath/id")).click();
driver.getKeyboard().sendKeys(textToBeTyped);

在所有appium客户端库中,都会创建触摸对象,并提供一系列事件。首先,必须使用webdriver初始化TouchAction OVObject,然后链接步骤以执行操作。您可以演示各种手势,例如:

  • 水龙头
  • 按(长、短)
  • 滑动(从坐标a到坐标b)
  • 执行多点触摸操作
您可以使用给定的参数,例如每次操作的持续时间、等待设置、设置释放等

示例:

要按具有坐标的图元,请执行以下操作:

new TouchAction(driverObject).tap(PointOption.point(x,y)).perform();
或:

为了将元素从点A滑动到点B,Z持续时间为毫秒

//wait parameters for duration purposes
WaitOptions waitOptions = new WaitOptions();
waitOptions.withDuration(Duration.ofMillis(millis));

//The action
new TouchAction(driverObject).longPress.press(fromPoint)
                .waitAction(waitOptions).moveTo(toPoint).release().perform();

在所有appium客户端库中,都会创建触摸对象,并提供一系列事件。首先,必须使用webdriver初始化TouchAction OVObject,然后链接步骤以执行操作。您可以演示各种手势,例如:

  • 水龙头
  • 按(长、短)
  • 滑动(从坐标a到坐标b)
  • 执行多点触摸操作
您可以使用给定的参数,例如每次操作的持续时间、等待设置、设置释放等

示例:

要按具有坐标的图元,请执行以下操作:

new TouchAction(driverObject).tap(PointOption.point(x,y)).perform();
或:

为了将元素从点A滑动到点B,Z持续时间为毫秒

//wait parameters for duration purposes
WaitOptions waitOptions = new WaitOptions();
waitOptions.withDuration(Duration.ofMillis(millis));

//The action
new TouchAction(driverObject).longPress.press(fromPoint)
                .waitAction(waitOptions).moveTo(toPoint).release().perform();

下面的解决方案有效吗?不完全有效。我可以找到一个按钮来单击,但是有其他人的问题,我不能向文本字段发送键:我可以获得键盘,但我不能发送键,因为元素从未被单击过。你能在下面的答案中使用最后两行代码吗?那应该能解决你的问题。不要将密钥直接发送到元素。只需单击它,然后使用driver.getKeyboard().sendKeys(“TextToByped”);有一个元素没有单击,但没有单击我选择的元素。在所有的测试之后,我发现它直接使用驱动程序单击,而不是通过xpathdriver,只使用xpath找到元素,然后单击。下面的解决方案是否有效?不完全正确。我可以找到一个按钮来单击,但是有其他人的问题,我不能向文本字段发送键:我可以获得键盘,但我不能发送键,因为元素从未被单击过。你能在下面的答案中使用最后两行代码吗?那应该能解决你的问题。不要将密钥直接发送到元素。只需单击它,然后使用driver.getKeyboard().sendKeys(“TextToByped”);有一个元素没有单击,但没有单击我选择的元素。在所有的测试之后,我发现它使用驱动程序直接单击,而不是通过xpathdriver,只使用xpath找到元素,然后单击。