Я использую phantomjs с WebDriver для тестирования без проблем в Cent OS. Phantomjs.exe для Windows работает отлично. Но когда я делаю баночка файл для Cent OS, приходит ошибки как:PhantomJS 2.1.1: «errorMessage»: «Элемент в настоящее время не виден и не может быть обработан
"errorMessage":"Element is not currently visible and may not be manipulated
или
Error communicating with the remote browser. It may have died.
у меня есть следующий код для создания исполняемой баночки для Cent OS:
@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().");
}
Я просто поставить примерки поймать блок, чтобы понять брошенную ошибку и обнаружил, что приведенный ниже код является причиной ошибки:
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();
}
}
Это литий элемент не найден в любом случае. Но этот элемент найден, если я выполняю код в среде Windows с помощью phantomjs.exe версии 2.1.1.
Итак, вы можете попробовать другой способ найти этот элемент li. Попробуйте использовать cssSelector –