1

WebdriverでJavaを使用してスクリプトを実行すると、「アラートはアクティブではありません」というエラーメッセージが表示されます。これは一貫性のない動作であり、エラーが発生することがあり、エラーは発生しません。このエラーメッセージを表示しなかった場合、他の場所で失敗します。

注:スクリプトは私のマシンで完全に機能しています。

他のマシンのすべてのIE9設定を自分のマシン設定で変更しましたが、それ以降、このエラーが発生します。以前、私は「モーダルダイアログが存在します」としてエラーメッセージを取得するために使用します。

私が使用したコードを以下で見つけてください:

//Entering data in the Account Information section
driver.findElement(By.name(OR.getProperty("AccName_Id"))).clear();
driver.findElement(By.name(OR.getProperty("AccName_Id"))).
sendKeys(AccName+"_"+Randnum);
driver.findElement(By.name(OR.getProperty("AccDBA_ID"))).sendKeys("Kumar_DBA");
driver.findElement(By.id(OR.getProperty("AccTax_ID"))).sendKeys(""+numberToSend);
driver.findElement(By.name(OR.getProperty("AccAddress_ID"))).sendKeys("124 - City  
Cross Roads");
driver.findElement(By.id(OR.getProperty("AccZip_ID"))).sendKeys("00501");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccZip_ID"))),   
"").perform();

//Entering data in the Main Contact Information section 
driver.findElement(By.name(OR.getProperty("AccFName_ID"))).sendKeys("Kumara");
driver.findElement(By.name(OR.getProperty("AccMName_ID"))).sendKeys("S");
driver.findElement(By.name(OR.getProperty("AccLName_ID"))).sendKeys("Swamy");
driver.findElement(By.id(OR.getProperty("AccOffNo_ID"))).sendKeys("1234567890");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccOffNo_ID"))), 
"").perform();
driver.findElement(By.id(OR.getProperty("AccCellNo_ID"))).sendKeys("0123456789");
new 
Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccCellNo_ID"))),  
"").perform();
driver.findElement(By.id(OR.getProperty("AccFaxNo_ID"))).sendKeys("1234567890");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccFaxNo_ID"))), 
"").perform();
driver.findElement(By.name(OR.getProperty("AccEmail_ID"))).sendKeys("abc@abc.com")     ;
driver.findElement(By.id(OR.getProperty("save_ID"))).click();
driver.switchTo().alert().accept();
isAlertPresent();
Thread.sleep(15000);
driver.findElement(By.id(OR.getProperty("AccZip_ID"))).sendKeys("79081");
new Actions(driver).sendKeys(driver.findElement(By.id(OR.getProperty("AccZip_ID"))), 
"").perform();
Thread.sleep(8000L);
driver.findElement(By.id(OR.getProperty("save_ID"))).click();
driver.switchTo().alert().accept();
isAlertPresent();
Thread.sleep(30000);

この問題についてできるだけ早く助けてください。助けていただければ幸いです。

4

1 に答える 1

3

アラートが表示される前にWebドライバコードが起動されたと思います。私の提案はwait for alert、クリックアクションの後に置くことです。

このコードを試してください:

    //Do some click action to render alert.
    //statement to wait for an alert.
    WebDriverWait wait = new WebDriverWait(driver,
            30);
    wait.until(ExpectedConditions.alertIsPresent());
   //accepting the alert
   driver.switchTo().alert().accept();

上記のコードは30秒間待機し、500ミリ秒ごとにアラートの存在を確認します。アラートが存在する場合、待機を終了して次のアクションを実行します。

于 2013-01-23T07:25:05.450 に答える