2017-02-17 20 views
0

Ich muss überprüfen, dass ein Textfeld nur eine bestimmte Anzahl von Zeichen akzeptiert. Wenn die Zeichen größer sind, gibt es keinen Fehler, sondern nur den Text rot. Ein anderes Textfeld akzeptiert keine zusätzlichen Zeichen. Wie stelle ich sicher, dass das Textfeld in beiden Fällen nicht mehr Zeichen akzeptiert?Wie überprüft man, ob das Element in Selenium WebDriver mit Java anklickbar ist

Eine Option, die ich habe, ist, überprüfen Sie, ob die Schaltfläche "Speichern", die auf der Seite sichtbar ist, anklickbar ist. Wie mache ich das mit Selenium WebDriver in Java?

+0

Nur zu Ihrer Information, "klickbar" bezieht sich auf Sichtbarkeit und Verfügbarkeit in selenischer Sprache. Ein deaktivierter Button wäre immer noch anklickbar, in dem Sinne, dass er einen Mausklick registrieren würde, selbst wenn er keine Aktionen starten würde. Wie die Antworten zeigen, geht es bei Ihrer Frage wirklich darum, ob ein bekanntes und sichtbares Element aktiviert ist. Ihre Frage ist immer noch verständlich und gültig, diese Definitionen werden Ihnen nur bei der Suche nach ziemlich einfachen Antworten in der Zukunft helfen :) – KjetilNordin

Antwort

0

Sie können isEnabled() verwenden, um zu prüfen, ob ein Element aktiviert ist oder nicht.

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

Dies wird true zurück, wenn die Schaltfläche angeklickt werden kann.

0

Wenn durch klickbar Sie nicht deaktiviert bedeuten, können Sie WebElement.isEnabled() verwenden.

Über die Texteingabe, die keine zusätzlichen Zeichen akzeptiert, wenn Sie dies stattdessen erkennen möchten, hängt davon ab, wie diese Einschränkung erzwungen wird. Zum Beispiel, wenn es durch eine maxlength attribute getan wird, können Sie versuchen, dieses Attribut von Ihrem input Element (WebElement.getAttribute(String)) zu lesen. In diesem Fall wissen Sie im Voraus, wie viele Zeichen Sie an die Textbox senden können.

Über die Texteingabe, die den Text rot anzeigt, wenn Sie erkennen möchten, dass Sie zuerst herausfinden sollten, wie der Text rot wird; wahrscheinlich, indem Sie ein CSS class oder style Attribut zu Ihrem input Element setzen, in welchem ​​Fall Sie versuchen können, dieses Attribut vom Element zu lesen.

+0

Ich konnte das maxlength-Attribut erhalten. Danke für den Vorschlag. Aber wie überprüfe ich, dass das Textfeld keine Zeichen mehr als maxlength akzeptiert. Wenn ich driver.findelement (By.xpath ("xpath_value")). Length() verwende, gibt es mir die Gesamtlänge der Eingabezeichenfolge, die größer ist als maxlength und der Testfall schlägt fehl. – user3190414

+0

Sie meinen wahrscheinlich 'driver.findElement (By.xpath (" xpath_value ")). GetText(). Length()'. Der Zweck meines Vorschlags, das Attribut 'maxlength' zu lesen, bestand jedoch darin, dass Sie, sobald Sie diesen Wert kennen, die Anzahl der Zeichen annehmen, die das Textfeld akzeptiert. Nun habe ich nicht getestet, ob das 'maxlength'-Attribut von Browsern akzeptiert wird, aber ich nehme definitiv an, dass es ist, was bedeutet, dass ich darauf vertrauen würde, dass die Textbox 100 Zeichen nicht akzeptiert, wenn 'maxlength' gelesen wird. Müssen Sie testen, ob das Feld so eingestellt ist, dass es maximal N Zeichen akzeptiert oder diese Einstellung tatsächlich berücksichtigt? – SantiBailors

1

Schreiben Sie einfach die folgende Methode und rufen Sie sie auf, wenn Sie überprüfen möchten, ob das Element anklickbar ist oder nicht. Übergeben Sie die erforderlichen Argumente auch.

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; 
     } 
    } 
Verwandte Themen