2010-12-22 4 views
5

내가 거기에 이벤트 리스너가 선택 상자가 발사 : 예/FF에서 사용할 때 그것은 것 잘 작동셀레늄 IE 변경 이벤트가 없습니다

$(document).ready(function() { 
    $('#edit-era-code-select').change(function() { 
     $.ajax({ 
     url: Drupal.settings.basePath+'era/js', 
     type: 'POST', 
     data: "era_code_select="+$(this).val(), 
     context: document.body, 
     success: function(){ 
     window.location.reload(true); 
     } 
    }); 
    }); 
}); 

을/... 사용하여 셀레늄 테스트를 수행 할 때 그것을 변경 phpunit 내가 선택 상자를 볼 수 있지만 그것은 jquery 이벤트 변경 트리거하지 않습니다. IE에서만 발생합니다. 다음은 명령을 수행하는 코드입니다.

AbstractSeleniumTestCaseIexplore::loginShib ($user ['uid']); 
    $this->waitForElementPresent("//select[@id='edit-era-code-select']", 30000); 
    $code = $this->getSelectedLabel("//select[@id='edit-era-code-select']"); 
    if ($code != 3333) { 
    $this->select("edit-era-code-select", "label=3333"); 
    $this->waitForPageToLoad("30000"); 
    } 
    ... 

아무도 도와 줄 수 있습니까?

+0

groovy/grails 프로젝트에 동일한 문제가 있습니다. 도움을 주시면 감사하겠습니다. –

답변

0

값을 직접 수정하지 않고 select 키 누르기 이벤트를 보냈습니까?

+0

그건 도움이되지 않습니다. –

9

나는 이것을 이렇게 풀었다. 최적이 아니지만 계속해서 다른 것들을 테스트 할 수 있습니다.

$this->runScript("$('#edit-era-code-select').change()");

+0

나는 비슷한 문제를 겪었고 이런 식으로 일을 끝냈다. 웹 페이지에서 jQuery를로드해야합니다. – Argote

+0

@domidc - Selenium 2에서 작동하지 않습니다. 다른 해결 방법이 있는지 알고 계십니까? thx – RSG

2

당신은 변경 이벤트를 발생 실행 스크립트와 같은 몇 가지 해킹없이 작동 얻을 수 있습니다. Selenium은 코드에서 javascript를 생성하고 브라우저에서 실행합니다. 하지만 자바 스크립트를 통해 선택의 선택 옵션을 변경하면 결코 작동하지 않습니다.

<select id="someTxt"> 
    <option value="1">Option1</option> 
    <option value="2">Option2</option> 
    <option value="3">Option3</option> 
</select> 
<div id="button">Change selected option via javascript</div> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#someTxt').change(function() { 
     alert($("#someTxt option:selected").text()); 
     }); 
    $("#button").bind("click", function(){ 
     $("#someTxt option[value='3']").attr('selected', 'selected'); 
    }); 
    }); 
</script> 

:

나는 (. 당신이 손 '변화'이벤트 화재가 아니라 자바 스크립트를 통해 옵션을 선택 변경하는 경우 가능한 예를 here를 확인하실 수 있습니다) 그것을 이해하기 위해 작은 예를 완료했습니다 그래서 내가 수동으로 좋아하는이 이벤트를 발생 괜찮 생각 :

$this->runScript("$('#edit-era-code-select').change()"); 
+0

이 더 이상 나를 위해 IE에서 셀 륨 2.3에서 작동합니다. 다른 해결 방법이 있는지 알고 계십니까? – RSG

+0

@RSG 불행히도 다른 해결 방법을 알지 못합니다. ( –

+0

dagger. 어쨌든 답장 해 주셔서 감사 드리며 계속 검색하겠습니다. – RSG

1

가 먼저 포커스를 설정해야합니다

runScript("document.getElementById('selectboxID').focus()) 

이 문제는 IE 브라우저에서 발생합니다.

관련 문제