pyhon學習之selenium巢狀定位frame
阿新 • • 發佈:2018-12-08
首先我們看一看方法
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等相關操作