2017-02-17 26 views
0

テキストボックスには特定の文字数だけを受け入れることを確認する必要があります。文字が超過すると、エラーは発生せず、テキストは赤で表示されます。別のテキストボックスでは、単に追加の文字を受け入れません。どちらの場合も、テキストボックスで複数の文字が受け入れられないことを確認するにはどうすればよいですか?Javaを使用してSelenium WebDriverで要素がクリック可能かどうかを確認する方法

私が持っているオプションは、ページに表示されている[保存]ボタンがクリック可能かどうかを確認することです。 JavaでSelenium WebDriverを使用するにはどうすればよいですか?

+0

ちょうどあなたの情報のために、「クリック可能」とは、セレンの言語の可視性と可用性を指します。無効化されたボタンは、アクションを開始しなくてもマウスクリックを登録するという意味でクリック可能です。答えが示すように、あなたの質問は、既知の既存の目に見える要素が有効になっているかどうかについてです。あなたの質問はまだ理解でき、有効です。これらの定義は、あなた自身で、とても簡単な答えを探し出すのに役立ちます:) – KjetilNordin

答えて

0

isEnabled()を使用して、要素が有効かどうかを確認できます。

driver.findElement(By.xpath("//path/to/element").isEnabled(); 

これは、ボタンがクリック可能な場合、trueを返します。

0

クリック可能で無効になっていない場合は、WebElement.isEnabled()を使用できます。

追加文字を受け付けないテキスト入力については、代わりにその文字を検出したい場合は、その制約がどのように強制されるかによって異なります。たとえば、maxlength attributeで完了した場合は、input要素(WebElement.getAttribute(String))からその属性を読み取ろうとすることができます。この場合、テキストボックスに送信できる文字の数は事前に分かります。

テキストが赤色に変わるテキスト入力について、テキストがどのように赤色に変わったかを最初に調べる必要があることを検出したい場合は、 CSSのclassまたはstyle属性をinput要素に設定すると、その属性を要素から読み取ろうとする可能性があります。

+0

maxlength属性を取得できました。提案していただきありがとうございます。しかし、テキストボックスがmaxlength以上の文字を受け入れないことを確認するにはどうすればよいですか?私がdriver.findelement(By.xpath( "xpath_value"))。length()を使用すると、入力文字列の長さがmaxlengthより大きく、テストケースが失敗します。 – user3190414

+0

おそらく 'driver.findElement(By.xpath(" xpath_value "))。getText()。length()'を意味します。しかし、「maxlength」属性を読むという私の提案の目的は、その値がテキストボックスが受け入れる文字の量であることを知ってからであるということでした。今、私は 'maxlength'属性がブラウザによって尊重されているかどうかをテストしませんでしたが、確かに仮定します。つまり、私が読んだ' maxlength'が100ならば、テキストボックスは100文字を超えません。フィールドが最大N文字を受け入れるように設定されているか、実際にその設定を尊重するかどうかをテストする必要がありますか? – SantiBailors

1

以下のメソッドを記述して、その要素がクリック可能かどうかをチェックしたいときはいつでも呼び出すだけです。必要な引数も渡します。

public static boolean isClickable(WebElement el, WebDriver driver) 
    { 
     try{ 
      WebDriverWait wait = new WebDriverWait(driver, 6); 
      wait.until(ExpectedConditions.elementToBeClickable(el)); 
      return true; 
     } 
     catch (Exception e){ 
      return false; 
     } 
    } 
関連する問題