2015-03-15 6 views
0

Я пытаюсь автоматизировать вход в систему gmail.Java с Selenium WebDriver

Когда я ввожу текст в поле ввода имени пользователя, используя sendKeys(), он выдает исключение.

Мой код:

WebElement userName = driver.findElement(By.id("Email")); 
userName.sendKeys("tutorial"); 

Исключение:

Error:The method sendKeys(CharSequence[]) in the type WebElement is not applicable for the arguments (String) 
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method sendKeys(CharSequence[]) in the type WebElement is not applicable for the arguments (String) at com.gmail.test.Gmaillogin.main(Gmaillogin.java:65) 
+0

Основываясь на этом фрагменте, он должен работать. Строка - это CharSequence, поэтому передача строкового литерала - абсолютно правильная вещь, связанная с этим методом. Возможно, предоставление немного большего количества окружающего кода может показать больше? Редактировать: Кроме того, какая IDE вы используете, и что это за уровень компилятора? –

+0

Благодарим вас за ответ. Я использую Eclipse helios IDE. Уровень соответствия требованиям 1.4. Но все равно он не работает. –

+0

Попробуйте изменить уровень компилятора на 1.7. Более старые версии java имеют отличия в своих функциях, которые иногда могут приводить к неожиданным результатам. –

ответ

0

Это вам сказать, что метод SendKeys получить только CharSequence [] тип. Вы должны создать CharSequence [] и вставить в него свое значение и использовать его в методе sendKeys.

Смотрите это для использования CharSequence: How to convert a String to CharSequence?

-1

SendKeys метод ввода должен быть CharacterSequence массив, но не строка. Но в Java строка String равна CharSequence. Таким образом, вы можете сделать следующим образом

WebElement userName = driver.findElement(By.id("Email")); 
CharacterSequence[] cs = new String[]{"tutorial"}; 
userName.sendKeys(cs); 
+0

Спасибо, что ответили. –

+0

Когда я пробовал код: WebElement userName = driver.findElement (By.id («Email»)); CharacterSequence [] cs = new String [] {"tutorial"}; userName.sendKeys (cs); Исключение: Исключение в потоке «main» java.lang.Error: Неразрешенные проблемы компиляции: Последовательность символов не может быть разрешена –

0

Спасибо ребята за помощь мне. Я могу решить выше проблема.

Код, который работал: userName.sendKeys (new String [] {"tutorial"});

Более подробную информацию смотрите по этой ссылке: Error when using sendKeys() with Selenium WebDriver Java.lang.CharSequence cannot be resolved

+0

Хотя это может сработать, я не думаю, что это хорошее решение. Как правило, неправильная практика заключается в создании экземпляра String с использованием новой строки (""). Строковые литералы, не работающие, подразумевают, что у них есть основная проблема, и это решение, похоже, просто подрывает его. Вы пробовали экспериментировать с более новым компилятором? Я читал раньше других людей, имеющих аналогичную проблему, используя 1.4 в качестве своего уровня компилятора. Но переход к более новому был исправлен. Даже если вам ограничен 1.4, зная, работает ли он с 1,6 или 1,7, это поможет объяснить причину. Это единственное, о чем я могу думать. –

0

Просто проверить и обновить уровень языка проекта к SDK по умолчанию (IntelliJ, не уверен, о затмении) в настройках проекта, он работал на меня.

Thanks

Смежные вопросы