文字列を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()メソッドは引数として文字列値を取っていないのですか?
簡単な解決策があります。コンパイラー準拠レベルを1.4から1.7に変更します。
Eclipseで次の手順を実行します。
コードを確認してください。同じエラーが表示されることはありません。
element.sendKeys(new String[]{"Hello, Selenium"});
私のコードはこのように見えますが、動作しています。
これには2つの解決策があります
1-コンパイラーのバージョンを古いバージョンから1.5以上に変更します。
2- JREバージョンをJRE8からJRE7に変更します。
これについての詳細な記事を作成しました。
http://learn-automation.com/solution-for-sendkeyscharsequence-in-Selenium/
JREシステムライブラリを再度設定します。 Eclipseを使用する場合は、次の手順に従ってください。
編集する代わりに、削除して追加することもできます。手順は次のとおりです。
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 / )
キーを送信する前に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()メソッドを使用して入力フィールドをクリアする必要があります。
次のコード行を置き換えることで試すことができます。
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();