PhantomJS 2.1.1:“errorMessage”:“元素当前不可见,可能无法操纵

时间:2016-05-02 07:00:39

标签: centos webdriver phantomjs

我正在使用带有WebDriver的phantomjs在Cent OS中进行无头测试。用于Windows的phantomjs.exe工作正常。但是当我为Cent OS制作jar文件时,会出现如下错误:

"errorMessage":"Element is not currently visible and may not be manipulated

Error communicating with the remote browser. It may have died.

我有以下代码为Cent OS制作可执行jar:

@Before
public void setUp()
{               
    logger.info("Inside setup().");
    DesiredCapabilities caps = new DesiredCapabilities();
    caps.setJavascriptEnabled(true);                
    caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "phantomjs");
    driver = new PhantomJSDriver(caps);
    driver.manage().window().maximize();
    logger.info("Exiting setUP().");
}

我只是放了一个try-catch块来理解抛出的错误,发现下面的代码是错误的原因:

public void goToMyPageAfterLogin()
{
    try
    {
        logger.info("Inside goToMyPageAfterLogin().");
        driver.manage().window().maximize();
        wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//li[@id='header-mypage-top']//a")));

        WebElement element = driver.findElement(By.xpath("//li[@id='header-mypage-top']//a"));
        element.click();
        logger.info("Exiting goToMyPageAfterLogin().");
    }catch(Exception ex)
    {
        ex.printStackTrace();
    }       
}

无论如何都找不到这个li元素。但是,如果我在带有版本2.1.1的phantomjs.exe的Windows环境中执行代码,则会找到此元素。

1 个答案:

答案 0 :(得分:0)