typeKeys selênio retira ponto do que está sendo digitado Cordas
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?
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
.
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!