pyhon学习之selenium嵌套定位frame

首先我们看一看方法

    def switch_to_frame(self, frame_reference):
        """ Deprecated use driver.switch_to.frame
        """
        warnings.warn("use driver.switch_to.frame instead",
                      DeprecationWarning, stacklevel=2)
        self._switch_to.frame(frame_reference)

然后看一看frame的方法。

   def frame(self, frame_reference):
        """
        Switches focus to the specified frame, by index, name, or webelement.

        :Args:
         - frame_reference: The name of the window to switch to, an integer representing the index,
                            or a webelement that is an (i)frame to switch to.

        :Usage:
            driver.switch_to.frame('frame_name')
            driver.switch_to.frame(1)
            driver.switch_to.frame(driver.find_elements_by_tag_name("iframe")[0])
        """
        if isinstance(frame_reference, basestring) and self._driver.w3c:
            try:
                frame_reference = self._driver.find_element(By.ID, frame_reference)
            except NoSuchElementException:
                try:
                    frame_reference = self._driver.find_element(By.NAME, frame_reference)
                except NoSuchElementException:
                    raise NoSuchFrameException(frame_reference)

        self._driver.execute(Command.SWITCH_TO_FRAME, {'id': frame_reference})

可以看到,我们需要传入的数据所代表的意义。

frame_reference:window的名字,或者是一个代表下标的整数,或者是一个将要切换的web元素。下面给了案例。
第一个是字符串   frame_name
第二个是整数       frame下标
第三个是元素       elem

然后根据代码 ,如果我们传入的是一个string类型的,那么会先进行id定位,然后再进行name定位。最后frame会称为整型的下标或者是一个element元素。

 然后我们就可以在这个frame中进行查找定位元素等等相关的操作。
但是仍然是在同一个driver里面进行find_element等相关操作

猜你喜欢

转载自blog.csdn.net/rubikchen/article/details/84592148