2016-08-24 3 views
4

두 개의 Ajax 드롭 다운 필드에서 특정 값을 선택하려고합니다. 먼저 옵션 목록이 열리고 옵션은 선택되지 않으므로 두 번째 드롭 다운 목록이 바인딩되지 않습니다. 소자를 찾을 수 없습니다 : 옵션 [값 = "111"] 착오 셀레늄 webdriver를 사용하여 아약스 드롭 다운 값을 선택할 수 없습니다.

같은 org.openqa.selenium.NoSuchElementException 발생.

.. 내가 ..

Code

HTML 블록 여기

내 코드는 셀레늄

에 새로운 오전 제발 도와주세요 :

HTML block

+0

selectByVisibleText를 사용하려고하면 오류가 발생합니까 ??? –

+0

안녕하세요, Swa. 및 스택 오버플로 환영합니다. html 코드와 webdriver 코드를 스크린 샷으로 게시하는 대신, markdown을 사용하여 질문에 코드 (단지 관련 비트)를 붙여 넣는 것이 더 좋을 것입니다. –

+0

@swa이 문제를 해결 했으므로 솔루션으로 추가하고 답변으로 표시하십시오. 그것은 다른 사용자가 그것에 디버깅하는 데 도움이됩니다. 또한 환경에서 사용한 버전에 대한 설명을 추가하십시오. :) – jit

답변

2

이 문제는 Firefox 브라우저 (버전 45) 호환성 문제로 인해 발생했습니다. 셀렌 3.0.0-beta2를 사용하고 있으며 Firefox 45.0.2를 테스트 중입니다.

OS 윈도우 10-64 비트에서 geckodriver (버전 0.10.0)를 사용하면 문제가있는 것 같습니다. Firefox 48 이상에서만 작동합니다. 크롬 드라이브에서 성공적으로 작업했습니다.

0

당신은 시도 할 수 있습니다 셀렌의 드롭 다운과 상호 작용하는보다 구체적인 방법. 심지어 dropdwns 작업을위한 함수를 정의 할 수 있습니다

Select dropdown = new Select(driver.findElement(By.id("cmbJob"))); 
dropdown.selectByValue("111"); 

:이 같은 시도

protected void chooseOptionInSelectByValue(String selectId, String valueString) { 
    Select dropdown = new Select(driver.findElement(By.id(selectId))); 
    dropdown.selectByValue(valueString); 
} 

그래서 당신은이

chooseOptionInSelectByValue("cmbJob","111"); 

셀레늄 드롭 다운 객체와 같은 기능을 사용할 수있다 selectByText와 같은 다른 많은 옵션이 있습니다. 여기 API에서 확인하십시오. https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/Select.html

+0

위의 솔루션 및 selectByVisibleText를 Xpath를 사용하여 시도했지만 여전히 동일한 오류가 발생했습니다 ... 제발 제안하십시오 – Swa

+0

@ Ricardo .. 답장을 보내 주셔서 감사합니다. '첫 번째 드롭 다운하기 전에 하나의 숨겨진 div가 있습니다. 'div. 숨겨진 div 때문에 문제가 있습니까? – Swa

+0

@Swa 이것은 문제가 아니어야합니다. 하지만 당신의 HTML을 확인해보십시오. 왜냐하면 나는 name = "cmbJob"이라는 두 가지를 볼 수 있기 때문입니다. 새로운 Select (driver.findElement (By.id (selectId)))가 'dropdown.getOptions()'를 사용하여 로그 또는 system.out 요소에 올바른 드롭 다운 인쇄를 찾는 지 확인할 수 있습니다. https://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/support/ui/Select.html#getOptions-- –

관련 문제