我正在使用带有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环境中执行代码,则会找到此元素。
答案 0 :(得分:0)
您是否尝试过使用JavaScriptExecutor? http://selenium-solutions.blogspot.in/2012/11/enabling-hidden-element-using.html