MoveTargetOutOfBoundsException Selenium IE9 / FireFox

时间:2015-02-05 03:16:44

标签: javascript css internet-explorer firefox selenium

我遇到了使用selenium的FireFox / IE9驱动程序的问题。当我使用selenium的Actions类并使用其方法moveToElement时,它不会移动到元素,它将返回MoveTargetOutOfBoundsException。我尝试过使用其他解决方案,比如使用Coordinates,Point和javascriptexecutor,但所有这些解决方案都没有用。通过使用moveToElement,它对我的​​chrome驱动程序起作用,所以我不知道为什么它不能在firefox33 / IE9上工作,因为它们是selenium的原生

以下是我的代码片段:

WebElement requiredCheckbox = new WebDriverWait(driver,15).until(ExpectedConditions.presenceOfElementLocated(By.name("tc_n_cs_subscribe_1")));

    // Point points = requiredCheckbox.getLocation();
    // System.out.println(points.getX());
    // System.out.println(points.getY());
    // actions.moveByOffset(points.getX(), points.getY()).perform();

    // ((JavascriptExecutor)
    // driver).executeScript("window.scrollBy(0, "+points.getY()+");");

    // ((JavascriptExecutor) driver).executeScript(
    // "arguments[0].scrollIntoView();", requiredCheckbox);

    // Coordinates coordinate =
    // ((Locatable)requiredCheckbox).getCoordinates();
    // coordinate.onPage();
    // coordinate.inViewPort();

    actions.moveToElement(requiredCheckbox).build().perform();

    requiredCheckbox.click();

2 个答案:

答案 0 :(得分:0)

你想做什么?如果要将视图滚动到requiredCheckbox,请尝试

((Locatable) requiredCheckbox).getCoordinates().inViewPort();

答案 1 :(得分:0)

我已经解决了这个问题。我使用了javascriptexecutor代码。

((JavascriptExecutor) driver).executeScript(
        "arguments[0].scrollIntoView();", requiredCheckbox);

在我添加DesiredCapabilities setJavascriptEnabled方法后,它工作了。