Was nutzt Annotation "@FindBy"?

8

Kann mir jemand etwas über Annotation @FindBy in WebDriver erklären?

Wo und warum wird es verwendet?

    
mra419 27.01.2012, 03:50
quelle

4 Antworten

11

Kann ich API-Dokumentation nennen?

  

Wird verwendet, um ein Feld auf einem Page Object zu markieren, um einen alternativen Mechanismus zum Auffinden des Elements oder eine Liste von Elementen anzugeben. In Verbindung mit PageFactory#proxyElement können Benutzer so schnell und einfach PageObjects erstellen.

Wenn Sie also PageObject pattern verwenden, fügen Sie diese Annotation zu den Klassenmembern hinzu, und WebDriver injiziert automatisch die entsprechende WebElement s während der Objektinitialisierung (wenn PageFactory.initElements() aufgerufen wird).

Ich empfehle dringend, diesem Link zu folgen und über PageObject pattern und @FindBy Annotations zu lesen mehr Beispiele.

    
Slava Semushin 27.01.2012 04:07
quelle
11

Es hilft beim Erstellen von Locators, wenn Sie die Page Factory zur Unterstützung Ihrer Seitenobjekte verwenden

PageFactory Wiki-Seite

Ich stelle jedoch fest, dass es für mich nützlicher ist, Ihre Locators als By-Objekte und nicht als WebElements zu speichern, da diese flexibler sind und Sie nicht in die StaleElementException geraten können.

%Vor%

statt

%Vor%

Auf diese Weise können Sie auch Ihre Locators verwenden, wenn Sie die Abwesenheit eines Elements bestätigen oder es in den ExpectedConditions-Helfern verwenden.

    
el roso 04.02.2012 08:09
quelle
3
___ qstnhdr ___ Was nutzt Annotation "@FindBy"? ___ qstntxt ___

Kann mir jemand etwas über Annotation %code% in %code% erklären?

Wo und warum wird es verwendet?

    
___ answer9028865 ___

Kann ich API-Dokumentation nennen?

  

Wird verwendet, um ein Feld auf einem Page Object zu markieren, um einen alternativen Mechanismus zum Auffinden des Elements oder eine Liste von Elementen anzugeben. In Verbindung mit %code% können Benutzer so schnell und einfach PageObjects erstellen.

Wenn Sie also %code% pattern verwenden, fügen Sie diese Annotation zu den Klassenmembern hinzu, und %code% injiziert automatisch die entsprechende %code% s während der Objektinitialisierung (wenn %code% aufgerufen wird).

Ich empfehle dringend, diesem Link zu folgen und über %code% pattern und %code% Annotations zu lesen mehr Beispiele.

    
___ answer49514574 ___

Mithilfe der PageFactory-Klasse verwenden wir die Annotationen %code% , um WebElements zu finden. Wir verwenden die initElements-Methode, um Web-Elemente zu initialisieren. %code% kann tagName, partialLinkText, name, linkText, id, css, className, xpath als Attribute akzeptieren.

Die %code% -Anmerkung lokalisiert ein oder mehrere WebElements anhand eines einzelnen Kriteriums. Um beispielsweise alle Elemente mit demselben Klassenattribut zu identifizieren, könnten wir die folgende Identifikation verwenden:

%Vor%     
___ answer9139433 ___

Es hilft beim Erstellen von Locators, wenn Sie die Page Factory zur Unterstützung Ihrer Seitenobjekte verwenden

PageFactory Wiki-Seite

Ich stelle jedoch fest, dass es für mich nützlicher ist, Ihre Locators als By-Objekte und nicht als WebElements zu speichern, da diese flexibler sind und Sie nicht in die StaleElementException geraten können.

%Vor%

statt

%Vor%

Auf diese Weise können Sie auch Ihre Locators verwenden, wenn Sie die Abwesenheit eines Elements bestätigen oder es in den ExpectedConditions-Helfern verwenden.

    
___ tag123seleniumwebdriver ___ Selenium-WebDriver bietet die WebDriver API zur Steuerung von Browsern in verschiedenen Programmiersprachen ("Language Bindings"). Wenn Sie dieses Tag verwenden, fügen Sie auch ein Tag für die von Ihnen verwendete Programmiersprache hinzu. ___ tag123annotations ___ Bei der Programmierung werden Annotationen verwendet, um einem Codeelement Informationen hinzuzufügen, die nicht vom Typsystem ausgedrückt werden können. ___ tag123webdriver ___ WebDriver ist eine API zur Steuerung von Webbrowsern, die einen echten Benutzer imitiert. Es wird hauptsächlich für automatisierte Tests verwendet. WebDriver hat mehrere Sprachenbindungen und Treiber (ermöglicht die Steuerung verschiedener Browser). Wenn Ihre Frage für eines von ihnen spezifisch ist, stellen Sie sicher, dass Sie auch das entsprechende Tag angeben. ___ tag123findby ___ hilf uns dieses Wiki zu bearbeiten ___ antwort12512103 ___

Sie können auch Pagefactory verwenden und etwas wie:

haben %Vor%

Nun zu How. können Sie Folgendes haben:

  1. CLASS_NAME
  2. CSS
  3. ID
  4. ID_OR_NAME
  5. LINK_TEXT
  6. NAME
  7. PARTIAL_LINK_TEXT
  8. TAG_NAME
  9. XPATH
  10. Klasse

Oder Sie können Ihre eigene DOM-Suche plus Xpath verwenden, das wäre außerhalb der WebDriver-API, aber es sollte funktionieren.

    
___
kamal 20.09.2012 11:56
quelle
0

Mithilfe der PageFactory-Klasse verwenden wir die Annotationen @FindBy , um WebElements zu finden. Wir verwenden die initElements-Methode, um Web-Elemente zu initialisieren. @FindBy kann tagName, partialLinkText, name, linkText, id, css, className, xpath als Attribute akzeptieren.

Die @FindBy -Anmerkung lokalisiert ein oder mehrere WebElements anhand eines einzelnen Kriteriums. Um beispielsweise alle Elemente mit demselben Klassenattribut zu identifizieren, könnten wir die folgende Identifikation verwenden:

%Vor%     
The man 27.03.2018 13:43
quelle