2017-03-28 12 views
1

Gmail用のSelenium Automationフレームワークを構築しようとしています。 私は以下のツールをインストールしました: JDK、Eclipse、Selenium Jars、Gradle、TestNGSelenium Webdriverでは、テキストがテキストボックスに入力されたら、ボタンをクリックします。

私はgmailにログインしようとしています。しかし私は私のユーザー名を入力する頃には、私のカムはエラーを下回っています。 ユーザー名を入力する前に「次へ」ボタンをクリックしようとしています。

waitフレームワークを開発する際にこれまで必要とされていた場所を使用できますか? waitに電話をかけている間は、基準を維持する必要がありますか? ユーザが定義したwaitメソッドを記述します。

エラー: に失敗しました:gmailLoginShouldBeSuccessful org.openqa.selenium.ElementNotVisibleException: コマンド期間またはタイムアウト:207ミリ秒

マイコード:要素に(サーバーが任意のスタックトレース情報を提供しなかったWARNING)をクリックすることはできません

@Test 
public void gmailLoginShouldBeSuccessful(){ 
    //1.Go to Gmail website 
    System.setProperty("webdriver.ie.driver", "C:\\Selenium_Softwares_Docs_Videos\\IEDriverServer_x64_3.1.0\\IEDriverServer.exe"); 
    WebDriver driver = new InternetExplorerDriver(); 
    driver.manage().deleteAllCookies(); 
    driver.manage().window().maximize(); 
    driver.get("http://gmail.com");  
    //2.Fill in username 
    WebElement userTextBox = driver.findElement(By.id("Email")); 
    userTextBox.clear(); 
    userTextBox.sendKeys("xxxx"); 
    //3. click on next button 
    WebElement nxtBtn = driver.findElement(By.id("next")); 
    nxtBtn.click(); 
    //4.Fill in password 
    WebElement pwdTextBox = driver.findElement(By.id("Passwd-hidden")); 
    userTextBox.clear(); 
    userTextBox.sendKeys("xxxxxxx"); 
    //5.Click sign in 
    WebElement signBtn = driver.findElement(By.id("signIn")); 
    signBtn.click();   
} 
+0

パスワードを設定するときにuserTextBoxの代わりにpwdTextBoxを使用する必要があります。 – kushal

+0

WATIR(Selenium wrapper)で待機調整が非常にうまくいっていますか?書き込み可能?どの要素とも相互作用する前に、これらの4つの要素のいずれかが遅れた場合、それは待機します。それを試してみてください。 – RAJ

+1

Gmail用のAPIがあります。なぜUIを自動化する代わりにそれを使用しないのですか? – JeffC

答えて

0

要件を満たすために明示的に待機することができます。

WebDriverWait wait = new WebDriverWait(yourWebDriver, 5); 
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//xpath_to_element"))); 

Webdriverは、要素をクリックできるように5秒間待機します。代わりに、インターネットエクスプローラの

+0

これは問題を解決していない可能性があります。クリック可能な条件を満たす可能性がありますが、ユーザー名はまだ入力されていません。 – gm2008

0

使用クロームドライバ:

import java.util.concurrent.TimeUnit; 

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.testng.annotations.Test; 

public class TestCommons { 
    @Test 
    public void gmailLoginShouldBeSuccessful() throws InterruptedException { 
     // 1.Go to Gmail website 
     System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "\\chromedriver.exe"); 
     WebDriver driver = new ChromeDriver(); 
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
     driver.manage().window().maximize(); 
     driver.get("http://gmail.com"); 
     // 2.Fill in username 
     driver.findElement(By.id("Email")).clear(); 
     driver.findElement(By.id("Email")).sendKeys("vishala"); 
     // 3. click on next button 
     driver.findElement(By.id("next")).click(); 
     // 4.Fill in password 
     driver.findElement(By.id("Passwd")).sendKeys("vishala"); 
     // 5.Click sign in 
     driver.findElement(By.id("signIn")).click(); 
     driver.quit(); 
    } 
} 

希望はこれはあなたのために動作します:)

0

あなたはRETURNキーを送信するのではなくサインインボタンをクリックしてもらえますか?

関連する問題