2016-05-19 14 views
0

私はSeleniumを初めて利用しています。セレンのWebdriverスロータイムアウト例外

私の問題は、私が要素をクリックしようとしていますが、は、timeout exceptionを投げています。

idの代わりにxpathを使用する必要がありますか?

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

enter image description here 私のコードは、私が間違って何をやっているこの

void searchquotation() throws TimeoutException { 
    try { 
      WebDriverWait wait = new WebDriverWait(driver, 15); 
      WebElement element = wait.until(ExpectedConditions.presenceOfElementLocated(By.name("SearchButton"))); 
      element.click(); 
     } 
    catch(TimeoutException e) { 
     System.out.println("Timeout occured"); 
     } 

のように見えますか?

+0

このJavaScript document.getElementsByName(使用してブラウザのコンソールで最初に確認してください『検索]を』)あなたは、このボタンを得ていますか否か? –

答えて

0

入力タイプはsubmit(HTMLコードを参照)ですので、Seleniumのsubmit()関数を試してみることを強くお勧めします。

-1
try below code, even timeout exception occurs, it will try 4 time to click on it. assuming locator is correct By.name("SearchButton") 

    public void searchquotation() 
    int count=0; 
    while(count<4) 
    { 
    try { 
    WebElement x = driver.findElement(By.name("SearchButton"))); 
    WebDriverWait element=new WebDriverWait(driver,15); 
    element.until (ExpectedConditions.presenceOfElementLocated(By.name("SearchButton"))); 
    x.click(); 
count=count+4; 
    } 
    catch(TimeoutException e) { 
    count=count+1; 
    System.out.println("Timeout occured"); 
    continue; 
    } 
    } 
+0

だらけ。要素はテーブルに囲まれています。tdでラップされた要素にアクセスする方法はありますか?以下はHTMLコードです http://i.stack.imgur.com/WxJYp.jpg –

+0

専門家からの回答 –

0

by.nameの代わりにby.idを使用してください。

  1. by.Id( "検索]")
  2. by.CssSelector( "入力#1 [検索")
  3. by.Xpath( "//入力[ID @ =」:したがって、これらのいずれかを使用[検索 '] ")

注:構文が間違っている可能性が、あなたのプログラミング言語に応じて調整してください

関連する問題