2012-03-08 1 views
3

Java의 Selenium WebDriver를 사용하여 Magento 사이트에서 자동화 된 체크 아웃을 수행하기 위해 작은 응용 프로그램을 구성하고 있습니다. 저는 Java를 배우려고 노력하고 있습니다. 그래서 Ruby 나 Python으로 바꾸지 않고 Java로 알아 냈습니다.selenium.WebElement.sendKeys()의 오류

package com.huuginn.seleniumMagento; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.firefox.FirefoxDriver; 

/** 
* selenium app for completing checkout in magento 
* 
*/ 
public class App 
{ 
    public static void main(String[] args) 
    { 
     //  MagentoCatalog c = new MagentoCatalog(); 
     WebDriver driver = new FirefoxDriver(); 

     driver.get("http://plmkt.huuginn.com/"); 

     WebElement searchField = driver.findElement(By.id("search")); 

     System.out.println(searchField.getClass().getName()); 
     searchField.clear(); 
     searchField.sendKeys("sample"); 
     searchField.submit(); 
    } 
} 

내 getName() 행은 내가 원하는 요소를 페이지에서 가져오고 있음을 확인합니다. 컴파일 할 때

이 오류를 받고 있어요 :

[정보] 컴파일 실패 /seleniumMagento/src/main/java/com/huuginn/seleniumMagento/App.java:[25,13] org.openqa.selenium.WebElement 에서 SendKeys에서가 (java.lang.CharSequence ...) (java.lang.String의)

에서 SendKeys가 CharSequence를 구현하는 유형의 파라미터를 기대하고 적용 할 수 없다 (자바 .lang.String 같은 자격이), 그래서 내가 왜이 오류가 발생하는지 이해가 안돼.

Java 1.6 및 Selenium 2.19를 사용하여 Maven으로 빌드를하고 있습니다.

+0

WebDriver의 어떤 버전입니다. 현재 사용하고 계신가? – PocketDews

+0

2.19를 사용하고 있었지만 이것을 테스트하는 과정에서 2.20에 부딪 혔습니다. –

답변

4

sendKeys()과 비슷한 문제가 발생했습니다. 문제는 보통 CharSequence 대신에 CharSequence... 인 서명이 var-ary라는 것입니다.

물론 이것은 Java 6에서 문제가되어서는 안됩니다. 제 생각에 maven 컴파일은 다른 컴파일러 설정을 사용하는 것입니다. 어쨌든 문제를 진단하는 데 도움이되도록

searchField.sendKeys(new String[] { "sample" }); 

으로 코드를 변경할 수 있습니다.

1

이 문제를 해결할 수있는 또 다른 방법을 발견했습니다. 컴파일 할 Java 버전을 지정하지 않았으므로 Maven은 이전 버전 용으로 컴파일하고있었습니다. SendKeys 매크로에서 나에게 단지 리터럴 문자열 "SAMPLE"을() 수

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.0.2</version> 
    <configuration> 
     <source>1.5</source> 
     <target>1.5</target> 
    </configuration> 
    </plugin> 

을하고 그것을 잘 작동합니다 : 내 pom.xml 파일이 추가되었습니다.

1

당신이 프로젝트를 만드는 당신이 "를 선택 실행 환경 JRE 사용하는지 확인하십시오.. JavaSE-1.6 당신은 어떤에서 SendKeys는 오류 100 % 작동합니다 밖으로 성공적으로 테스트를 실행할 수 있습니다