2013-12-05 2 views
1

Я использовал тот же тип кода, чтобы выбрать раскрывающийся там код, который работает нормально, но в этом случае я попытался нажать на кнопку. Я получаю сообщение об ошибке, как элемент в настоящее время не видно и поэтому не может быть взаимодействовали с Длительность команды или тайм-аут: 31 мсSelenium Webdriver: Элемент в настоящее время не виден

JavascriptExecutor executor3 = (JavascriptExecutor)driver; 
executor3.executeScript("document.getElementById('iskpiFilterAction').style.display='block';"); 
driver.findElement(By.id("iskpiFilterAction")).click(); 
Thread.sleep(6000); 

Проблема является тип скрыта и HTML-теги следующим образом:

<input id="iskpiFilterAction" type="hidden" value="1" name="isKpiFilterAction"> 

Может ли кто-нибудь проверить код и дать мне решение или образец кода.

+0

Что такое мир '' .style.type = 'hidden' "'? Скрытые входы не отображаются на странице, как бы вы нажимали на них ???? – epascarello

+0

Можно ли нажать кнопку, если она скрыта, пожалуйста, предложите мне решение – Amirdha

+0

Пожалуйста, дайте мне пример для вышеуказанного тега html – Amirdha

ответ

2

Как epascarello упоминались в комментариях, #iskpiFilterAction является не кнопкой, это скрытый <input> элемента. Таким образом, вы не можете click() его здесь:

driver.findElement(By.id("iskpiFilterAction")).click(); // this won't work 
+0

Да, я aggree с вашим комментарием. Затем я нацелен на идентификатор кнопки с указанным выше кодом, теперь он работает нормально. спасибо – Amirdha

0

Кроме того, что люди обычно делают с элементом подобного, который является либо видимым или нет, использовать ExpectedCondition.visibilityOfElement() так:

WebElement foo2 = wait.until(ExpectedConditions 
     .visibilityOfElementLocated(By.id("iskpiFilterAction"))); 

Принимая во внимание, регулярный способ получения элемента может быть:

WebElement foo2 = wait.until(ExpectedConditions 
     .presenceOfElementLocated(By.id("iskpiFilterAction"))); 
0

Вы можете попробовать использовать Selenuim действие класса для имитации пользовательских взаимодействий, которые сделают кнопка видна user--

, например:

меню WebElement = driver.findElement (By.xpath ("));

Actions build = new Actions(driver); 
    build.moveToElement(menu).build().perform();//Hovers the mouse over the first element which will trigger the event 
    WebElement m2m= driver.findElement(By.xpath(""));// finds the previouslly hidden element 
    m2m.click(); 
Смежные вопросы