第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將定位器與頁面對象類 Python Selenium 分開

將定位器與頁面對象類 Python Selenium 分開

幕布斯7119047 2021-10-10 15:32:08
我正在嘗試在我的自動測試中實現(xiàn) POM 模型,但我在將定位器分離到另一個文件時遇到了問題。我用這個作為指南 https://selenium-python.readthedocs.io/page-objects.html我的頁面對象from Locators.Sites.SitesLocators import SitesLocatorsclass ResetPasswordFirstForm(object):    def __init__(self, driver):        self.driver = driver        self.wait = WebDriverWait(self.driver, 20)    def button_go_to_reset_passwrod(self):        self.driver.find_element(*SitesLocators.button_go_to_reset_password).click()    def button_submit_form(self):        self.driver.find_element(*SitesLocators.button_submit_reset_password).click()我的定位器class SitesLocators(object):    button_go_to_reset_password = (By.CSS_SELECTOR, "a[href='#/reset-password']")    button_submit_reset_password = (By.CSS_SELECTOR, "[ng-click='send()']")但我收到這個錯誤TypeError: __init__() takes 2 positional arguments but 3 were given分離我的定位器并正確使用它們的最佳方法是什么?
查看完整描述

1 回答

?
紫衣仙女

TA貢獻1839條經(jīng)驗 獲得超15個贊

正如我所看到的錯誤:


TypeError: init () 需要 2 個位置參數(shù),但給出了 3 個


意味著您需要向 中添加第三個參數(shù)__init()__:


這是您當(dāng)前的__init()__:


def __init__(self, driver):

    self.driver = driver

    self.wait = WebDriverWait(self.driver, 20)

正如您在問題中引用的selenium 頁面對象,您可以在此處看到它們有第三個參數(shù)(盡管并不總是使用 see owner)。


所以只需添加第三個它就可以解決問題!


正如你在這里看到的:


def __get__(self, obj, owner):

    """Gets the text of the specified object"""

    driver = obj.driver

    WebDriverWait(driver, 100).until(

        lambda driver: driver.find_element_by_name(self.locator))

    element = driver.find_element_by_name(self.locator)

    return element.get_attribute("value")

希望這對你有幫助!


查看完整回答
反對 回復(fù) 2021-10-10
  • 1 回答
  • 0 關(guān)注
  • 207 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號