robotframework/SeleniumLibrary

stubs are completely broken

开放

#1,919 创建于 2024年9月10日

 (5 条评论) (2 个反应) (0 位负责人)Python (714 个派生)batch import
bughelp wanted

仓库指标

星标
 (1,252 个星标)
PR 合并指标
 (30 天内没有已合并 PR)

描述

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

贡献者指南