属性函数中的参数类型定义Python
Parameter type definition in function of attribute Python
我是一名 TEA,我使用 Python + Selenium Webdriver 并遵守 运行 我的测试。
为此我定义了 webdriver inside 上下文如下
driver = webdriver.Chrome()
driver.implicitly_wait(5)
context.driver = driver
context.driver.get('https://www.ebay.com/')
这是在一个函数中定义的,但我的问题是当我想在另一个步骤函数中使用驱动程序时,我没有得到驱动程序函数的片段。这让我浪费了很多时间来寻找我正在尝试使用的函数的确切名称。
例如
@then('Click the "Search" button')
def step_impl(context: behave.runner.Context):
"""
:type context: behave.runner.Context
"""
search_btn = context.driver.find_element_by_xpath('//*[@id="gh-btn"]')
search_btn.click()
我知道我可以像这样直接定义接收到的参数类型
var_name: str (def step_impl(context: behave.runner.Context)
,但我要找的情况更具体。喜欢 context.driver: 'webdriver object'
有没有办法定义 context.driver 类型,以便我的 ide 将解释这是一个 webdriver 对象并以这种方式获取驱动程序的方法?
我正在使用 PyCharm 专业版
def step_impl(context: WebDriver):
search_btn = context.driver.find_element_by_xpath('//*[@id="gh-btn"]')
search_btn.click()
您不必两次定义类型。
您需要的导入:
from selenium.webdriver.firefox.webdriver import WebDriver
PyCharm 应该可以使用这个:
@then('Click the "Search" button')
def step_impl(context: behave.runner.Context):
"""
:type context: behave.runner.Context
"""
driver: webdriver.Chrome = context.driver
search_btn = driver.find_element_by_xpath('//*[@id="gh-btn"]')
search_btn.click()
我是一名 TEA,我使用 Python + Selenium Webdriver 并遵守 运行 我的测试。
为此我定义了 webdriver inside 上下文如下
driver = webdriver.Chrome()
driver.implicitly_wait(5)
context.driver = driver
context.driver.get('https://www.ebay.com/')
这是在一个函数中定义的,但我的问题是当我想在另一个步骤函数中使用驱动程序时,我没有得到驱动程序函数的片段。这让我浪费了很多时间来寻找我正在尝试使用的函数的确切名称。
例如
@then('Click the "Search" button')
def step_impl(context: behave.runner.Context):
"""
:type context: behave.runner.Context
"""
search_btn = context.driver.find_element_by_xpath('//*[@id="gh-btn"]')
search_btn.click()
我知道我可以像这样直接定义接收到的参数类型
var_name: str (def step_impl(context: behave.runner.Context)
,但我要找的情况更具体。喜欢 context.driver: 'webdriver object'
有没有办法定义 context.driver 类型,以便我的 ide 将解释这是一个 webdriver 对象并以这种方式获取驱动程序的方法?
我正在使用 PyCharm 专业版
def step_impl(context: WebDriver):
search_btn = context.driver.find_element_by_xpath('//*[@id="gh-btn"]')
search_btn.click()
您不必两次定义类型。
您需要的导入:
from selenium.webdriver.firefox.webdriver import WebDriver
PyCharm 应该可以使用这个:
@then('Click the "Search" button')
def step_impl(context: behave.runner.Context):
"""
:type context: behave.runner.Context
"""
driver: webdriver.Chrome = context.driver
search_btn = driver.find_element_by_xpath('//*[@id="gh-btn"]')
search_btn.click()