无法使用 Appium 移动 Android SeekBar

2024-01-08

我有一个像这样的定制Android搜索栏,以及它可以移动到的位置。它从中间开始:

我想先移动滑块,然后检查它是否已保存。我有一个使用 TouchAction 的方法:

public void moveSeekBar(){
    WebElement seekBar = appiumDriver.findElementById("com.feverapp:id/SymptomTrackingActivity_var");
    //Get start point of seekbar.
    int startX = seekBar.getLocation().getX();
    System.out.println(startX);
    //Get end point of seekbar.
    int endX = seekBar.getSize().getWidth();
    System.out.println(endX);
    //Get vertical location of seekbar.
    int yAxis = seekBar.getLocation().getY();
    //Set slidebar move to position.
    // this number is calculated based on (offset + 3/4width)
    int moveToXDirectionAt = 786;
    System.out.println("Moving seek bar at " + moveToXDirectionAt+" In X direction.");
    //Moving seekbar using TouchAction class.
    TouchAction act=new TouchAction(appiumDriver);
    act.press(startX,yAxis).moveTo(moveToXDirectionAt,yAxis).release().perform();
}

我注意到的一件事是:

  • 搜索栏根本不动
  • getX 和 getY 始终是相同的值,即使我在调用此方法之前尝试将滑块设置回最左边

我尝试使用这样的发送键:

seekbar.sendKeys("0.5");

它起作用了:它将滑块移到了最左边,并且仅适用于 0.5,当我输入 0 到 1 范围内的数字时,它不起作用

非常感谢任何帮助。谢谢


 @Test
    public void testSeekBar()throws  Exception
    {
           //Locating seekbar using resource id
            WebElement seek_bar=driver.findElement(By.id("seek_bar"));
            // get start co-ordinate of seekbar
            int start=seek_bar.getLocation().getX();
            //Get width of seekbar
            int end=seek_bar.getSize().getWidth();
            //get location of seekbar vertically
            int y=seek_bar.getLocation().getY();

        // Select till which position you want to move the seekbar
        TouchAction action=new TouchAction(driver);

        //Move it will the end
        action.press(start,y).moveTo(end,y).release().perform();

        //Move it 40%
        int moveTo=(int)(end*0.4);
        action.press(start,y).moveTo(moveTo,y).release().perform();

    }

这对我来说非常有效

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用 Appium 移动 Android SeekBar 的相关文章

随机推荐

  • 为什么 %E2%80%8F 被添加到我的 YouTube 嵌入代码中?

    我在 Youtube 上有很多视频 我使用相同的代码嵌入这些视频 所有视频都运行良好 直到我上传最后一个视频 每次我现在执行代码时 E2 80 8F 都会附加到最后上传的视频中 除非我特别要求使用子字符串 0 11 请注意 如果没有这种黑客
  • 如何在 C 中打印 %s?

    我要打印 SomeString in C 它是否正确 printf s SomeString 不 输出 所以正确的语法是 printf s string
  • Indexeddb - 我今天可以开始为其编码吗?

    我有最新版本的 Firefox 4 beta 和 Chrome 我想开始想出一些关于我可以用indexedDb 做什么的想法 到目前为止 它似乎还无法在任何浏览器中使用 关于何时可用有什么想法吗 Thanks Walter 它也在 Goog
  • 布尔表达式的最小化是NP完全的吗?

    我知道布尔可满足性是 NP 完全的 但它是布尔表达式的最小化 简化 我的意思是采用符号形式的给定表达式并生成符号形式的等效但简化的表达式 NP 完全 我不确定是否会从可满足性降低到最小化 但我觉得可能是这样 有人有确切消息么 好吧 这样看
  • 当用户单击列标题时,如何启用 DataGridView 排序?

    我的表单上有一个 datagridview 我用以下内容填充它 dataGridView1 DataSource students Select s gt new ID s StudentId RUDE s RUDE Nombre s Na
  • 将标记添加到现有谷歌地图(无需刷新谷歌地图)[重复]

    这个问题在这里已经有答案了 我的网站上有一个谷歌地图 正在生产 几乎没有标记 我想知道是否可以在现有地图上添加标记而不刷新我的谷歌地图 这就是我所拥有的 我加载我的网页 谷歌地图显示带有标记 单击按钮后 我想在我的地图上添加一个标记 无需刷
  • 在Shiny中通过tabPanel打开URL

    我的尝试 library shiny ui lt fluidPage navbarPage Sales Dashboard id sales tab tabPanel Panel 1 Test Panel value Test panel
  • 函数式编程 - 避免匹配表达式中的可变和改变 int 值

    我刚刚开始进行函数式编程 我目前要开始的小项目是一场基本的口袋妖怪战斗 先写代码 再解释 let choosePokemon let mutable pokemon DemoData schiggy let msg Console Read
  • 按最大值或按总值标准化?

    我正在做一些涉及文档比较的工作 为此 我分析每个文档 并基本上计算某些关键字在每个文档中出现的次数 例如 Document 1 Document 2 Book gt 3 Book gt 9 Work gt 0 Work gt 2 Dolla
  • 如何在reactjs中将数据二进制转换为图像?

    我已经在尝试这个 但它仍然对我不起作用如何在reactjs中将二进制数据转换为图像 https stackoverflow com questions 41972435 how to convert the binary data to i
  • OpenMP 并行 for 循环几乎没有性能提升

    我正在学习如何在 C 中使用 OpenMP 作为 HelloWorld 练习 我正在编写一个计算素数的程序 然后我将其并行化如下 int numprimes 0 pragma omp parallel for reduction numpr
  • 将 SimpleMembership 与 EF 模型优先结合使用

    Can 简单会员制与一起使用EF 模型优先 当我尝试时 我在调用时收到 无法找到请求的 NET Framework 数据提供程序 WebSecurity InitializeDatabaseConnection 换句话说 我无法接到电话We
  • 使用 JavaScript 从元素中删除 CSS 类(无 jQuery)[重复]

    这个问题在这里已经有答案了 谁能告诉我如何仅使用 JavaScript 删除元素上的类 请不要用 jQuery 给我答案 因为我不会使用它 而且我对此一无所知 正确且标准的方法是使用classList 就是现在大多数现代浏览器的最新版本得到
  • cd 到以“-”破折号开头的目录[重复]

    这个问题在这里已经有答案了 我正在学习 Git 我的第一个任务是导航到我的项目所在的目录 不幸的是 我的文档主文件夹具有以下形式 folder1 出于排序目的 以及每次我进入时 cd folder1 我收到错误 bash cd 参数太多 在
  • 如何删除/重命名 SQL 中的重复列(不是重复行)

    当尝试从 Sybase 到 Microsoft SQL 执行 OPENQUERY 时 我遇到错误 通过以下方式获得的结果集中不允许有重复的列名 OPENQUERY 和 OPENROWSET 列名 PatientID 重复 我构建的查询根据相
  • 我们如何在 C# 中设置 Excel 图表的位置?

    我正在尝试从 C 生成 Excel 图表 图表是通过查找生成的 但它总是出现在屏幕的中央 如何设置图表的位置 Thanks 我的代码如下所示 Microsoft Office Interop Excel Workbook ebook Mic
  • Lisp 中 1 和 '1 有什么区别?

    我从来没有真正考虑过 Lisp 中的符号是否可以是数字 所以今天我尝试了一下 gt 1 1 gt 1 1 2 gt 1 1 2 gt define a 1 gt a 1 2 上面的代码是方案 但在 Common Lisp 和 Clojure
  • Django:为每个请求/表单生成新的 CSRF 令牌

    我们是否可以更改每个表单请求甚至每个请求的 CSRF 令牌 而不是一个活动会话的相同令牌 假设您有权访问request object from django middleware csrf import rotate token rotat
  • 获取特定类的所有对象

    我必须通过引用列出作为类实例的对象 class Foo class Foo1 obj1 new Foo obj2 new Foo obj32 new Foo1 我需要一个解决方案来获取 Foo 类实例的所有对象 你知道怎么做吗 获取类的所有
  • 无法使用 Appium 移动 Android SeekBar

    我有一个像这样的定制Android搜索栏 以及它可以移动到的位置 它从中间开始 我想先移动滑块 然后检查它是否已保存 我有一个使用 TouchAction 的方法 public void moveSeekBar WebElement see