Q - สอบถาม การทำงาน element แบบ ปกติ กับ ที่เติม s ต่างกันยังไง

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: Q - สอบถาม การทำงาน element แบบ ปกติ กับ ที่เติม s ต่างกันยังไง

Re: Q - สอบถาม การทำงาน element แบบ ปกติ กับ ที่เติม s ต่างกันยังไง

โดย tatiya » 25/12/2018 5:27 pm

ก็นั้นแหละครับ ผมจะได้หาข้อมูลมาตอบได้ถูกประเด็น

find_elements_by_ คือ จะใช้เพื่อค้นหาองค์ประกอบหลายรายการ และวิธีนี่จะ return ค่ามาเป็น list อย่างตัวอย่างที่เอาให้ดูข้างต้น
find_element_by_ คือ จะใช้เพื่อค้นหาองค์ประกอบทีละรายการ

ตัวอย่างเช่น

โค้ด: เลือกทั้งหมด

from selenium.webdriver.common.by import By

driver.find_element(By.XPATH, '//button[text()="Some text"]')
driver.find_elements(By.XPATH, '//button')

Re: Q - สอบถาม การทำงาน element แบบ ปกติ กับ ที่เติม s ต่างกันยังไง

โดย ธวัชชัย แสนหาญ » 25/12/2018 4:54 pm

ว่าแต่ จะใช้ find_elements_by_ ไปเพื่อทำอะไรครับ
ถามไว้เผื่อมันมีอะไรที่ดีกว่าตัว find_element_by_ธรรมดา

Re: Q - สอบถาม การทำงาน element แบบ ปกติ กับ ที่เติม s ต่างกันยังไง

โดย tatiya » 25/12/2018 4:44 pm

โค้ดสร้าง จริงๆก็เหมือนกัน แต่ เวลารีเทิร์นกับ อันนึ่นน่าจะรีเทิร์น ตัวแปล list ออกมาครับ ถ้าใช้ที่มี s มันจะไม่มี แอททรีบิว พวก click ประมาณนี้ครับ
โค้ดสร้างของ find_element กับ find_elements

โค้ด: เลือกทั้งหมด

def find_element(self, by=By.ID, value=None):
        """
        Find an element given a By strategy and locator. Prefer the find_element_by_* methods when
        possible.

        :Usage:
            element = driver.find_element(By.ID, 'foo')

        :rtype: WebElement
        """
        if self.w3c:
            if by == By.ID:
                by = By.CSS_SELECTOR
                value = '[id="%s"]' % value
            elif by == By.TAG_NAME:
                by = By.CSS_SELECTOR
            elif by == By.CLASS_NAME:
                by = By.CSS_SELECTOR
                value = ".%s" % value
            elif by == By.NAME:
                by = By.CSS_SELECTOR
                value = '[name="%s"]' % value
        return self.execute(Command.FIND_ELEMENT, {
            'using': by,
            'value': value})['value']

    def find_elements(self, by=By.ID, value=None):
        """
        Find elements given a By strategy and locator. Prefer the find_elements_by_* methods when
        possible.

        :Usage:
            elements = driver.find_elements(By.CLASS_NAME, 'foo')

        :rtype: list of WebElement
        """
        if self.w3c:
            if by == By.ID:
                by = By.CSS_SELECTOR
                value = '[id="%s"]' % value
            elif by == By.TAG_NAME:
                by = By.CSS_SELECTOR
            elif by == By.CLASS_NAME:
                by = By.CSS_SELECTOR
                value = ".%s" % value
            elif by == By.NAME:
                by = By.CSS_SELECTOR
                value = '[name="%s"]' % value

        # Return empty list if driver returns null
        # See https://github.com/SeleniumHQ/selenium/issues/4555
        return self.execute(Command.FIND_ELEMENTS, {
            'using': by,
            'value': value})['value'] or []
ว่าแต่ จะใช้ find_elements_by_ ไปเพื่อทำอะไรครับ

Q - สอบถาม การทำงาน element แบบ ปกติ กับ ที่เติม s ต่างกันยังไง

โดย ธวัชชัย แสนหาญ » 25/12/2018 4:35 pm

Element กับ Elements
อยากทราบว่าการใช้งานของ element กับ elements ใช้งานต่างกันไหม
Screenshot (21).png
Screenshot (21).png (220.33 KiB) Viewed 596 times

ข้างบน