2009-04-29 4 views
4

셀레늄 typeKeys는 문자열이 다음 명령을

Selenium.typeKeys("location", "gmail.com"); 

유형의 문자열 대신 gmail.comgmailcom을 입력되는 점을 제거합니다.

무슨 일입니까?

의견 :
필자는 자동 완성을 시뮬레이션하려고하고 있으며 현재 셀렌에서 수행하는 유일한 방법은 유형과 유형 키를 결합하는 것입니다. 예 :

selenium.type("assigned_to", split[0]+"@"); 
selenium.typeKeys("assigned_to", "gmail.com"); 

이제 내 질문에 typeKeys가 gmail.com 사이에 '도트'를 입력하지 않는 이유는 무엇입니까?

+0

해결 했습니까? –

답변

4

네이티브 키 기능 및 javascript char codes을 사용해 보셨습니까? '마침표'문자를 사용하여 작업 할 수 없었지만 (char 190) 십진수 (char 110)가 제대로 작동하고 텍스트 상자에 문제가 없어야합니다.

selenium.Focus("assigned_to"); 
selenium.Type("assigned_to", split[0]+"@"); 
selenium.TypeKeys("assigned_to", "gmail"); 
selenium.KeyPressNative("110"); 
selenium.TypeKeys("assigned_to", "com"); 
+0

셀레늄에서 마침표를 입력하는 함수를 찾을 수 없습니다 (ASCII 46). –

2

type 방법을 사용하십시오. javadoc for typekeys에서

:

이 명령 또는 입력 키는 일반적으로 보이는 효과

을했을 경우라도 어떤 눈에 보이는 효과를있을 수도 있고 없을 수도 있습니다 ...

경우에 따라 간단한 "유형"명령 을 사용하여 필드의 값을 설정해야 할 수도 있습니다. "typeKeys"명령을 사용하여 방금 입력 한 에 해당하는 키 스트로크 이벤트를 보냅니다.

+0

그 문서를 읽었습니다. autofil을 시뮬레이트하려고하고 있는데 셀렌에서 현재 수행하는 유일한 방법은 type과 typeKeys를 결합하는 것입니다. 예 : selenium.type ("assigned_to", split [0] + "@"); selenium.typeKeys ("assigned_to", "gmail.com"); 이제 내 질문에 typeKeys가 gmail.com 사이에 '도트'를 입력하지 않는 이유는 무엇입니까? – Afamee

+0

질문에 귀하의 코멘트를 추가했습니다. 모든 사람이 의견을 읽을 수는 없습니다. – guerda

0

나는 또한 셀레늄 RC (C#)를 사용하는 경우이 동작을보고하고있어 서로 다른 문자 (또는 문자가 입력 동작에서를 따라 제거하는 것, 예를 들어 'Y'..)

어떤 경우에는 TypeKeys 또는 KeyPress 기능으로 키를 입력하여 문제를 해결할 수 있지만 필드에 텍스트를 입력하고 컨트롤을 입력 할 때 작동하는 솔루션을 찾지 못하는 경우가 있습니다 문자 (예 : [Enter] 또는 개행)를 입력 한 다음 더 많은 텍스트를 입력하십시오.이 경우 '유형'기능을 사용하면 필드 내용을 덮어 씁니다.

누군가가이 문제에 대한 합리적인 해결책을 찾지 못하면이 질문에 답을 달아주세요. 지금 Google에 나오기 시작 했으므로 많은 사람들에게 도움이 될 것입니다. (만약 내가 could ..)

0

이것은 Selenium에서 열린 버그입니다 (버그 SEL-519).

마침내 그걸 돌아 다니며 마침내 '들어가'. JavaScript를 사용하여 텍스트 영역으로 변환합니다. storeEval 등을 통해 window.document.getElementById('assigned_to').value += '.'과 같은 것을 실행하십시오.

0

나는 동일한 동작을 얻었지만 문자열 대신 Type 명령에 변수를 전달하여 고정했습니다.

string email = @"[email protected]"; 
selenium.Type(inputfield, email); 

그것은 매력처럼 작동합니다!

+1

그 이유는 Type 메서드를 사용하기 때문에 TypeKeys 메서드를 사용할 때의 문제입니다. –

1

셀레늄 파이썬에서 typekeys를 사용하여 비슷한 문제가 발생했습니다.

이 문제를 해결하기 위해 해결 방법 중 하나는 'type'과 'type_keys'조합을 사용하는 것입니다. 알고 계시 겠지만 형식에는 이러한 문제가 없습니다.

우리는 셀레늄 파이썬 스크립트에서 이렇게했으며 잘 작동합니다. 텍스트 상자에 입력 할 수있는 이메일 주소가 있다면 는 : 예를 들어

[email protected]은 어쩌면

type(locator,’[email protected]’) 
type_keys(locator,’uk’) 

매우 원유 방법으로 할

해야 할 일 그러나 그것은 일을했다.

희망이 있으면 비슷한 문제가있는 다른 사람에게 도움이되기를 바랍니다.

1

typeKeys을 사용하여 입력 할 문자열이 "abc.xyz.efg"라고 가정합니다. 그런 다음 typetypeKeys 명령을 사용하여 지정된 문자열을 쓸 수 있습니다. 당신이 드롭 다운 상자에서 요소를 선택 할 때마다

type(locator,"abc.xyz.") 
typeKeys(locator,"efg") 

위의 두 단계를 유용하고 드롭 다운 우리가 typeKeys 명령을 사용하는 경우에만 아래로 나타납니다.

1

또한 쓰기 전에 요소에 초점을 설정하십시오.

selenium.focus(locator); 
selenium.typeKeys(locator, value); 

제 경우에는 입력 유형 = 암호를 처리합니다.

관련 문제