robotframework / robotframework/SeleniumLibrary

stubs are completely broken

Offen
#1,919 5 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug help wanted
Vorherrschende Sprache
Python
Sterne
1.5k
Forks
787
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Beschreibung

it looks like whatever is being used to generate the stubs is completely broken. for example the type annotations in SeleniumLibrary/__init__.pyi are mostly invalid:

class SeleniumLibrary:
    def __init__(self, timeout = timedelta(seconds=5.0), implicit_wait = timedelta(seconds=0.0), run_on_failure = 'Capture Page Screenshot', screenshot_root_directory: Optional[Optional] = None, plugins: Optional[Optional] = None, event_firing_webdriver: Optional[Optional] = None, page_load_timeout = timedelta(seconds=300.0), action_chain_delay = timedelta(seconds=0.25)): ...
    def add_cookie(self, name: str, value: str, path: Optional[Optional] = None, domain: Optional[Optional] = None, secure: Optional[Optional] = None, expiry: Optional[Optional] = None): ...
    
    ...
    
    def click_button(self, locator: Union, modifier: Union = False): ...
    def click_element(self, locator: Union, modifier: Union = False, action_chain: bool = False): ...
    def click_element_at_coordinates(self, locator: Union, xoffset: int, yoffset: int): ...
    def click_image(self, locator: Union, modifier: Union = False): ...
    def click_link(self, locator: Union, modifier: Union = False): ...
  • Optional[Optional] isn't valid. the correct usage would be something like Optional[int] (though Optional is deprecated in favor of the new union syntax eg. int | None)
  • Union is not valid as a type on its own. it should be something like Union[int, str] (which is deprecated in favor of int | str)
  • i see that __init__.py contains type annotations, so the generated stubs should not be needed and can probably just be deleted
  • a py.typed file is also required for type checkers to treat the package as typed

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Annotationen in SeleniumLibrary/init.py mit der generierten SeleniumLibrary/init.pyi zu vergleichen, und überprüfe anschließend, wie die Stubs erstellt und paketiert werden. Prüfe die im Issue verlinkte Typingspezifikation auf die Anforderungen für py.typed. Die Aufgabe ist abgeschlossen, wenn die verteilten Typinformationen gültig sind und Typprüfer das Paket als typisiert erkennen können, unabhängig davon, ob die Stubs korrigiert oder entfernt werden.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
python
Bereich
testing
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.