【问题标题】:how to swipe to right or left with selenium?如何用硒向右或向左滑动?
【发布时间】:2019-09-19 13:37:01
【问题描述】:

我正在尝试向右或向左滑动,但没有按钮或元素可以点击它进行滑动。我唯一的选择是向左或向右滑动是按住鼠标并转到每一侧进行滑动。 我已经尝试过这种方法,但它对我不起作用:

        Actions action = new Actions(driver);
        action.clickAndHold(homePage.HeroImage).build().perform();
        //you need to release the control from the test
        Thread.sleep(2000);
        action.moveToElement(homePage.HeroNext).release();

感谢您的帮助 :) (HeroImage 是现在显示的图像,HeroNext 是我要滚动到的下一张图像,两者都是可见的)

我也试过这段代码,但它也不起作用。

        try {

            for (int kk=0; kk<=6; kk++){
                JavascriptExecutor js = (JavascriptExecutor) driver;
                HashMap<String, String> scrollObject = new HashMap<String, String>();
                scrollObject.put("direction", "right");
                js.executeScript("mobile: scroll", scrollObject);
            }
            System.out.println("Swipe Successfully");
        }
        catch (Exception e)
        {
            System.out.println("Image swipe was not successfull");
        }

【问题讨论】:

    标签: java selenium google-chrome selenium-webdriver


    【解决方案1】:

    您是否尝试过构建并最终执行?

        Actions action = new Actions(driver);
        action.clickAndHold(homePage.HeroImage);
        //you need to release the control from the test
        Thread.sleep(2000);
        action.moveToElement(homePage.HeroNext).release();
        action.build().perform();
    

    我不相信睡眠会成为你想要的动作的一部分。如果需要硬等待,也许可以分成 2 个动作。您还可以使用 dragAndDrop 或 dragAndDropBy。一个拖到目标元素,另一个拖到目标位置

    【讨论】:

      【解决方案2】:

      对 x 和 y 坐标使用拖放:

      Actions action = new Actions(driver);
              action.dragAndDropBy(homePage.HeroImage, 200, 0).build().perform();
      

      这里驱动程序将对 HeroImage 元素进行水平拖放。如果你想垂直拖放设置x=0y="some range"

      希望它有效。 谢谢。

      【讨论】:

        猜你喜欢
        • 2011-03-29
        • 1970-01-01
        • 1970-01-01
        • 2019-04-16
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        • 2020-01-29
        • 2011-10-02
        相关资源
        最近更新 更多