Selenium webdriver geb测试单击并拖动滑块时出现问题

Selenium webdriver geb测试单击并拖动滑块时出现问题,selenium-webdriver,geb,Selenium Webdriver,Geb,一般来说,geb和自动化测试是新的。我在自动单击和拖动页面上的元素方面遇到了问题。我通读了geb的书,发现了Action类,并编写了一些非常程序化的代码来测试它。我可能误解了action类的操作方式,因为它似乎没有执行任务。它编译时没有问题,测试仍然运行,没有抛出任何错误。我试图拖动的web元素确实存在,我确信它是正确的 <div id="enquireForm:j_id_t_3_1_u:sliderframe" class="ets-nicecaptcha-slider ets-nice

一般来说,geb和自动化测试是新的。我在自动单击和拖动页面上的元素方面遇到了问题。我通读了geb的书,发现了Action类,并编写了一些非常程序化的代码来测试它。我可能误解了action类的操作方式,因为它似乎没有执行任务。它编译时没有问题,测试仍然运行,没有抛出任何错误。我试图拖动的web元素确实存在,我确信它是正确的

<div id="enquireForm:j_id_t_3_1_u:sliderframe" class="ets-nicecaptcha-slider ets-nicecaptcha-button-style ui-button-gradient">
   <span id="enquireForm:j_id_t_3_1_u:slidedrop" class="ets-nicecaptcha-drop ets-nicecaptcha-button-style ui-droppable">
   </span>
   <div id="enquireForm:j_id_t_3_1_u:sliderbutton" class="ets-nicecaptcha-slider-button ets-nicecaptcha-button-style ui-draggable ui-draggable-handle" style="position: relative;">
   </div>
</div>

void slideToSubmit(){
    WebElement slider = driver.findElement(By.className("ets-nicecaptcha-slider-button"))
    Actions action = new Actions(driver)
    action.perform()
    action = action.clickAndHold(slider)
    action.perform()
    action = action.moveByOffset(500,0)
    action.perform()
    action = action.release(slider)
    action.perform()
}

作废幻灯片提交(){
WebElement slider=driver.findElement(按.className(“验证码滑块按钮”))
动作动作=新动作(驱动程序)
action.perform()
动作=动作。单击并按住(滑块)
action.perform()
action=action.moveByOffset(500,0)
action.perform()
动作=动作。释放(滑块)
action.perform()
}

类名中的空格可能是问题所在。试一试

WebElement slider = driver.findElement(By.cssSelector("div[class='ets-nicecaptcha-slider-button ets-nicecaptcha-button-style ui-draggable ui-draggable-handle']"))
或者不使用
By
class直接尝试

    def browser = new Browser(driver: new FirefoxDriver()) // or whichever driver you use
    browser.go "www.url.com"
    browser.$("div.ets-nicecaptcha-slider-button.ets-nicecaptcha-button-style.ui-draggable.ui-draggable-handle")

如果您使用的是Geb,那么您应该使用,它可以大大简化以下内容:

interact {
    clickAndHold($(".ets-nicecaptcha-slider-button"))
    moveByOffset(500,0)
    release()
}