我在向下滚动到iOS和Android应用程序中的某个元素时遇到麻烦。由于从Appium
1.6.3更新到1.7.1,将io.appium更新到6.1.0,因此不建议使用swipe方法,唯一的解决方案是使用TouchActions。
我尝试使用TouchActions解决它,但是它根本没有滚动,或者滚动方向错误。
到目前为止,我的解决方案看起来像这样,也许有人可以解释我做错了什么:
public void scrollDownUntilElementVisible(WebElement element){
TouchAction touchAction = new TouchAction(getDriver());
for(int i=0; i<dimensions.getHeight();i++){
if(element.isDisplayed()){
break;
}else{
touchAction.press(0,0).moveTo(element).release().perform();
}
}
}
它不是完整的html" target="_blank">代码,但希望您能理解。
如果我使用x,y坐标代替我在示例中查找的webElement,它将如何工作?它不像以前版本中的swipe方法那样工作,或者我做的不正确。也许有人可以解释。
我需要滚动查找屏幕外的元素。我想出的是:
scrollDown
(在我的情况下,只需要向下滚动)并再次转到步骤1。我已经将测试限制为4次迭代,因为就我而言,这已经足够了,因此请在此处使用您自己的条件。 private void scrollDown() {
//if pressX was zero it didn't work for me
int pressX = driver.manage().window().getSize().width / 2;
// 4/5 of the screen as the bottom finger-press point
int bottomY = driver.manage().window().getSize().height * 4/5;
// just non zero point, as it didn't scroll to zero normally
int topY = driver.manage().window().getSize().height / 8;
//scroll with TouchAction by itself
scroll(pressX, bottomY, pressX, topY);
}
/*
* don't forget that it's "natural scroll" where
* fromY is the point where you press the and toY where you release it
*/
private void scroll(int fromX, int fromY, int toX, int toY) {
TouchAction touchAction = new TouchAction(driver);
touchAction.longPress(fromX, fromY).moveTo(toX, toY).release().perform();
}
PS您可以从元素获取坐标并在中使用它scroll
。
PSS我用过鸦片1.6.5
在iOS和Android应用程序中,我无法向下滚动到某个元素。由于从Appium 1.6.3更新到1.7.1,从io.Appium更新到6.1.0,因此不推荐使用滑动方法,唯一的解决方案是使用TouchActions。 我试图用TouchActions解决它,但它根本没有滚动,或者滚动方向错误。 到目前为止,我的解决方案是这样的,也许有人能解释我做错了什么: 这不是完整的代码,但我希望你明白。 如
目前,我正在为ios ionic应用程序编写一个Appium脚本,我使用以下方法来实现滑动功能。 在上面的方法中,单词press,waitAction
问题内容: 我有个问题。 我有一个带有一些JTextField,JLabel,Jlists和JButtons的JFrame,现在我框架的内容超出了屏幕区域,因此我想将JScrollBar附加到我的JFrame上,但是滚动条不起作用。因此,有人可以指导我如何使用JScrollbar滚动JFrame吗? 问题答案: 将所有组件放在一个面板中(而不是在JFrame中) 将此面板添加到JScrollPan
我正在尝试使用pyqt5创建一个垂直布局的滚动区,我正在里面放一些标签。我知道,即使是垂直布局,如果文本不适合,也应该水平滚动。但无论我尝试什么,它都不让我滚动。 这是我正在使用的代码: 下面是它的外观: 下面是它的样子: 我希望我的问题是清楚的
问题内容: 如何使Selenium WebDriver滚动到特定元素以使其显示在屏幕上。我尝试了很多不同的选择,但是没有运气。这在c#绑定中不起作用吗? 我可以使它跳到特定的位置, 但是我希望能够将其发送到不同的元素,而不必每次都给出确切的位置。 例1) 例2) 当我观看它时,它不会将页面跳到该元素,并且异常与不在屏幕上的元素匹配。 更新:我添加了bool ex = Example.Exists(
问题内容: MyBatis迁移将每个SQL文件分为两部分: 一种用于向前迁移一个版本 一种用于迁移回一个版本 如何使用Flyway回滚版本? 问题答案: 尽管Flyway支持回滚(仅作为商业功能),但不鼓励使用它: https://flywaydb.org/documentation/command/undo 尽管撤消迁移的想法很好,但不幸的是,有时它在实践中会崩溃。一旦您进行了破坏性的更改(删除