Решение: Сегодня (2011-04-13) Selenium RC плохо обрабатывает окна подтверждения в Firefox 4.Мне пришлось вернуться к Firefox 3.16, и тогда эта проблема исчезла.Еще раз спасибо.
Оригинальный вопрос:
Hello Selenium gurus,
Я пытаюсь выполнить автоматический тест браузера из Java с использованием Selenium 2.0b3 в качестве клиента Java и отдельного сервератоже.
Сервер запускает Firefox 4 с определенным профилем.
Тест застревает по команде "click";он ждет и не происходит тайм-аут / исключение / любая ошибка.Во время этого клика появляется окно подтверждения, поэтому я думаю, что это проблема, но я не знаю, почему это застревает.В Selenium IDE появляется не это окно подтверждения, только в RC.
Проблема не в том, что щелчок не происходит (потому что появляется окно подтверждения), а в том, что это окно подтверждения зависает.Я пробовал это, но не помогло:
selenium.click("css=div[id=command_Delete]");
selenium.click("id=command_Delete");
String JSscript = "jQuery('#command_Delete').click();" // See http://api.jquery.com/click/
selenium.runScript(JSscript);
Это просто способы, как начать клик.Может быть, я должен начать другую тему по этой ссылке: http://www.sqaforums.com/showflat.php?Cat=0&Number=567974&an=&page=0&vc=1
Спасибо: Andras
Java-код:
selenium.click("//div[@id='command_Delete']/span");
//stucks here
//so this is not reached:
String confirmation = selenium.getConfirmation();
HTML:
<div id="command_Delete" class="...">
<div>...</div>
<span>Delete</span>
<div>...</div>
<br><br>
</div>
Javascript:
<script type="text/javascript">
$('command_Delete').addEvent('click',function(){
var isConfirmTrue = confirm('Do you want to delete?');
if (isConfirmTrue) {
var myForm = getFormObj(document, "deleteForm");
submitForm(myForm);
}
});
</script>
А на Java он зависает в ожидании ответа selenium rc:
HttpURLConnection.getInputStream() line: 912 [local variables unavailable]
HttpURLConnection(HttpURLConnection).getResponseCode() line: 367 [local variables unavailable]
HttpCommandProcessor.getResponseCode(HttpURLConnection) line: 147
HttpCommandProcessor.getCommandResponseAsString(String) line: 167
HttpCommandProcessor.executeCommandOnServlet(String) line: 107
HttpCommandProcessor.doCommand(String, String[]) line: 89
DefaultSelenium.click(String) line: 167
...