Pergunta

A instrução seguinte

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

tipos do gmailcom cadeia em vez de gmail.com.

O que está acontecendo lá?

A partir dos comentários:
Estou tentando simular o preenchimento automático ea única maneira de fazê-lo actualmente em selênio é combinar tipo e typeKeys. por exemplo:

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

Agora, a minha pergunta é por typeKeys não escreva o 'dot' entre gmail.com?

Foi útil?

Solução

Você já tentou usar as principais funções nativas e javascript códigos de char ? Eu não poderia obter um personagem 'período' ao trabalho de usá-los (char 190), mas eu tenho a decimal (char 110) para o trabalho muito bem, e caixa de texto não deve ter um problema com qualquer um.

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

Outras dicas

Use o método type.

do javadoc para typekeys :

este comando pode ou não ter qualquer efeito visível, mesmo nos casos em teclas de digitação normalmente teria um efeito visível

...

Em alguns casos, você pode necessidade de usar o comando simples "tipo" para definir o valor do campo e, em seguida, o comando "typeKeys" para enviar a eventos de teclas correspondentes ao que você acabou de digitar.

Tivemos problemas semelhantes usando typekeys em python selênio.

Uma solução que nós figuramos para resolver esse problema é usar a combinação de 'tipo' e 'type_keys'. Como você pode estar ciente, o tipo não tem essas questões.

Nós fizemos isso em nosso script python selênio e ele funciona muito bem.

Por exemplo: Se houver um endereço de e-mail a ser introduzido numa caixa de texto: test.me@test.me.uk

Em seguida, faça

type(locator,’test.me@test.me.’)
type_keys(locator,’uk’)

Talvez uma forma muito grosseira de fazer, mas fez o trabalho.

Espero que isso ajude alguém com um problema semelhante.

Além disso, tente se concentram em elemento antes de escrita nele.

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

fez função no meu caso, lidar com um input type = senha.

Suponha que a string a ser digitado usando typeKeys é "abc.xyz.efg". Então, podemos usar comandos type e typeKeys para escrever a string dada.

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

O acima de duas etapas são úteis sempre que você quer selecionar um elemento na caixa suspensa e, no menu suspenso pops para baixo somente se usar o comando typeKeys.

Eu também estou vendo esse comportamento quando usando Selenium RC (C #), e com personagens diferentes ( 'y', por exemplo, que também parece remover o caractere segui-lo a partir da ação de digitação ..)

Para algumas situações, é inteiramente possível para contornar o problema, digitando as teclas com as TypeKeys ou funções KeyPress, mas não conseguiram encontrar uma solução que funciona quando você quer digitar texto em um campo, digite caracteres de controle ([Enter] ou uma nova linha, por exemplo), e em seguida, digite mais texto .. (utilizando a função 'Tipo', neste caso, simplesmente substitui o conteúdo do campo ...).

Se alguém consegue encontrar uma solução razoável a esta questão, por favor, adicioná-lo a esta pergunta como ele está começando a entrar no Google Now e, provavelmente, ajuda um monte de pessoas para fora .. (eu ia começar uma recompensa se eu pudesse ..)

Este é um bug aberto em selênio (bug SEL-519 ).

Depois de algum brincar com ele, eu finalmente conseguiu entrar '' em uma textarea usando JavaScript. Executar algo como window.document.getElementById('assigned_to').value += '.' via storeEval ou similar.

Eu tenho o mesmo comportamento, mas fixa-lo, passando uma variável para o comando Tipo em vez de uma string.

string email = @"name@gmail.com";
selenium.Type(inputfield, email);

Ele funciona como um encanto!

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top