web-dev-qa-db-ja.com

タイプWebElementのメソッドsendKeys(CharSequence [])は、引数(String)には適用されません

文字列をsendkeys()メソッドに送信しようとしていますが、次のようにエラーを受け入れてスローしません

私のコードは次のとおりです。

package healthcare;

import org.openqa.Selenium.By;
import org.openqa.Selenium.WebDriver;
import org.openqa.Selenium.chrome.ChromeDriver;
import org.openqa.Selenium.firefox.FirefoxDriver;
import org.openqa.Selenium.support.ui.Select;

import com.thoughtworks.Selenium.Selenium;
import com.thoughtworks.Selenium.webdriven.WebDriverBackedSelenium;

public class MailRegister_Webdriver {
    public WebDriver driver;
    public Selenium selenium;
    public void openURL(){
//System.setProperty("webdriver.chrome.driver", "F:\\Library\\chromedriver.exe");       
driver=new FirefoxDriver();
Selenium=new WebDriverBackedSelenium(driver, "http://mail.in.com");
driver.get("http://mail.in.com");
    }
    public void register() throws Exception{
//driver.findElement(By.cssSelector("input.registernow")).click();
Selenium.click("css=input.registernow");
Thread.sleep(3000);
driver.findElement(By.id("fname")).sendKeys("Nagesh");
Selenium.select("day", "10");
Selenium.select("month", "Jun");
new Select(driver.findElement(By.id("year"))).selectByVisibleText("1999");
Thread.sleep(1000);
driver.findElement(By.xpath("(//input[@name='radiousername'])[5]")).click();    
Thread.sleep(2000);
        driver.findElement(By.id("password")).sendKeys("nag123");
        driver.findElement(By.id("repassword")).sendKeys);
        driver.findElement(By.id("altemail")).sendKeys();
        driver.findElement(By.id("mobileno")).sendKeys("7894561230");
        driver.findElement(By.id("imageField")).click();
}

    public static void main(String[] args) throws Exception {
        // TODO Auto-generated method stub
        MailRegister_Webdriver m=new MailRegister_Webdriver();
        m.openURL();
        m.register();
    }
}

誰かがこれを助けることができますか?なぜSendkeys()メソッドは引数として文字列値を取っていないのですか?

10
mickey

簡単な解決策があります。コンパイラー準拠レベルを1.4から1.7に変更します。

Eclipseで次の手順を実行します。

  1. Javaプロジェクトを右クリックし、Build Path->をクリックします
    ビルドパスの設定...
  2. プロジェクトのプロパティウィンドウで、左側のJavaコンパイラをクリック/選択します
    パネル
  3. 右側のパネルで、コンパイラー準拠レベルを1.4から1.7に変更します
    (Eclipseの上位バージョンを選択してください)
  4. 最後に適用および[〜#〜] ok [〜#〜]をクリックします

コードを確認してください。同じエラーが表示されることはありません。

33
element.sendKeys(new String[]{"Hello, Selenium"});

私のコードはこのように見えますが、動作しています。

3
summer

これには2つの解決策があります

1-コンパイラーのバージョンを古いバージョンから1.5以上に変更します。

2- JREバージョンをJRE8からJRE7に変更します。

これについての詳細な記事を作成しました。

http://learn-automation.com/solution-for-sendkeyscharsequence-in-Selenium/

2
Mukesh otwani

JREシステムライブラリを再度設定します。 Eclipseを使用する場合は、次の手順に従ってください。

  1. プロジェクトのプロパティに移動
  2. 左側のパネルでJavaビルドパスを選択->右側のライブラリタブを選択
  3. JRE System Library []をクリック/選択->右側の編集ボタンをクリック
  4. 希望のJREを設定し、完了ボタンをクリックします
  5. 最後に、プロジェクトプロパティのポップアップウィンドウで[〜#〜] ok [〜#〜]ボタンをクリックします

編集する代わりに、削除して追加することもできます。手順は次のとおりです。

  1. プロジェクトを右クリック"プロパティ"Java Build Path
  2. ライブラリを選択タブ
  3. JREシステムライブラリを見つけて削除する
  4. 右側の[ライブラリを追加...]ボタンをクリックします"JREシステムライブラリを追加します(ワークスペースのデフォルトJRE)
0
Ripon Al Wasim

Javaのバージョンに応じて、プリミティブ(つまりChar)を文字列に変換する必要があります(こちらを参照: http://tech.deepumohan.com/2013/03/ Java-how-to-convert-primitive-char-to.html

または、Javaあなたのためにそれを行うバージョンに切り替えます(ここを参照してください: http://Java-performance.info/changes-to-string-Java-1-7 -0_06 /

0
goggelj

キーを送信する前にWebElementをクリックしてみてください。

public static void login(WebDriver driver, String userName, String password) {
    driver.get("loginPage.html");
    Thread.sleep(3000);
    driver.findElement(By.id("username")).click();
    driver.findElement(By.id("username")).clear();
    driver.findElement(By.id("username")).sendKeys(userName);
    Thread.sleep(TestConfiguration.time);
    driver.findElement(By.id("password")).click();
    driver.findElement(By.id("password")).clear();
    driver.findElement(By.id("password")).sendKeys(password);
    Thread.sleep(3000);
    driver.findElement(By.name("login")).click();
    Thread.sleep(3000);
}

SendKeys()を使用する前に、clear()メソッドを使用して入力フィールドをクリアする必要があります。

0
Gyorgy.Hegedus

次のコード行を置き換えることで試すことができます。

        driver.findElement(By.id("password")).sendKeys("nag123");
        driver.findElement(By.id("repassword")).sendKeys);
        driver.findElement(By.id("altemail")).sendKeys();
        driver.findElement(By.id("mobileno")).sendKeys("7894561230");
        driver.findElement(By.id("imageField")).click();

        driver.findElement(By.id("password")).sendKeys("nag123");
        driver.findElement(By.id("repassword")).sendKeys("");
        driver.findElement(By.id("altemail")).sendKeys("");
        driver.findElement(By.id("mobileno")).sendKeys("7894561230");
        driver.findElement(By.id("imageField")).click();
0
Abhishek Yadav