poium icon indicating copy to clipboard operation
poium copied to clipboard

有方法可以判断element不存在吗? Element()初始化会报index out of range

Open Joeylu-master opened this issue 2 years ago • 3 comments

`

    # selenium
    if by == "id_":
        self.__find_element((By.ID, value))
        elem = Browser.driver.find_elements(By.ID, value)[self.index]
    elif by == "name":
        self.__find_element((By.NAME, value))
        elem = Browser.driver.find_elements(By.NAME, value)[self.index]
    elif by == "class_name":
        self.__find_element((By.CLASS_NAME, value))
        elem = Browser.driver.find_elements(By.CLASS_NAME, value)[self.index]
    elif by == "tag":
        self.__find_element((By.TAG_NAME, value))
        elem = Browser.driver.find_elements(By.TAG_NAME, value)[self.index]
    elif by == "link_text":
        self.__find_element((By.LINK_TEXT, value))
        elem = Browser.driver.find_elements(By.LINK_TEXT, value)[self.index]
    elif by == "partial_link_text":
        self.__find_element((By.PARTIAL_LINK_TEXT, value))
        elem = Browser.driver.find_elements(By.PARTIAL_LINK_TEXT, value)[self.index]
    elif by == "xpath":
        self.__find_element((By.XPATH, value))
        elem = Browser.driver.find_elements(By.XPATH, value)[self.index]
    elif by == "css":
        self.__find_element((By.CSS_SELECTOR, value))
        elem = Browser.driver.find_elements(By.CSS_SELECTOR, value)[self.index]

  `

__get_element 方法如果find_elements是[], 会发生index out of range

Joeylu-master avatar Sep 29 '22 07:09 Joeylu-master

建议改成: @defnngj

elem = Browser.driver.find_elements(By.NAME, value)[self.index] if Browser.driver.find_elements(By.ID, value) else None

Joeylu-master avatar Oct 09 '22 08:10 Joeylu-master

有一样的问题

licoba avatar Nov 17 '22 07:11 licoba

建议改成: @defnngj

elem = Browser.driver.find_elements(By.NAME, value)[self.index] if Browser.driver.find_elements(By.ID, value) else None

你这是要执行两边find_elements? 那句应该改成elem = Browser.driver.find_elements(By.NAME, value),然后在最后加一句 elem = elem and elem[0] or None

ryanrain2016 avatar Jun 01 '23 08:06 ryanrain2016