python selenium webdriver方法封裝(find_element_by)


下面是對find_element_by_就行了封裝,封裝之后的高級方法就是getElement()

下面是具體的代碼:

 def getElement(self, selector):
        """
        to locate element by selector
        :arg
        selector should be passed by an example with "i,xxx"
        "x,//*[@id='langs']/button"
        :returns
        DOM element
        """
        if ',' not in selector:
            return self.driver.find_element_by_id(selector)
        selector_by = selector.split(',')[0]
        selector_value = selector.split(',')[1]

        if selector_by == "i" or selector_by == 'id':
            element = self.driver.find_element_by_id(selector_value)
        elif selector_by == "n" or selector_by == 'name':
            element = self.driver.find_element_by_name(selector_value)
        elif selector_by == "c" or selector_by == 'class_name':
            element = self.driver.find_element_by_class_name(selector_value)
        elif selector_by == "l" or selector_by == 'link_text':
            element = self.driver.find_element_by_link_text(selector_value)
        elif selector_by == "p" or selector_by == 'partial_link_text':
            element = self.driver.find_element_by_partial_link_text(selector_value)
        elif selector_by == "t" or selector_by == 'tag_name':
            element = self.driver.find_element_by_tag_name(selector_value)
        elif selector_by == "x" or selector_by == 'xpath':
            element = self.driver.find_element_by_xpath(selector_value)
        elif selector_by == "s" or selector_by == 'selector_selector':
            element = self.driver.find_element_by_css_selector(selector_value)
        else:
            raise NameError("Please enter a valid type of targeting elements.")

        return element

    def type(self, selector, text):
        """
        Operation input box.

        Usage:
        driver.type("i,el","selenium")
        """
        el = self.getElement(selector)
        el.clear()
        el.send_keys(text)

以上的代碼是封裝了find_element_by_的幾種方法,在具體使用封裝過的代碼的時候,只需要簡單的調用即可。

調用示例

    def login(self, userName, password): self.openPage(self.loginPageUrl) # self.driver.clearCookies() self.driver.implicitlyWait(5) self.driver.type("account", userName) self.driver.type("password", password) self.driver.click("submit")

自動化的測試代碼示例

    def test_ranzhi_login(self): """ 測試用例:測試然之登錄 :return: """ # 新建然之的頁面對象 loginPage = RanzhiSubLoginPage(self.autoDriver, self.baseUrl) # 利用然之的頁面對象進行登錄 loginPage.login("admin", "admin") sleep(2) # 斷言 是否登錄成功 self.assertEqual(loginPage.getMainPage(), self.autoDriver.getUrl(), u"登錄失敗")


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM