Robotframework解决Selenium2Library中的select frame无法选择没有name也没有id的frame或者iframe的问题

目前项目中遇到一个页面,有两个iframe弹窗口,由于都没有id、name,只有tag=iframe可以定位,但是两个都一样,利用select frame无法定位到第二个,目前Selenium2Library没有可以利用index进行定位的,所以需要自己新增个方法进行定位,在Python 2.7版本下面,打开C:\Python27\Lib\site-packages\SeleniumLibrary\keywords,找到frames.py文件,在select_frame方法下面新增一个方法

 @keyword
    def select_frame_by_index(self, locator, index):
        """Sets frame identified by 'locator' as current frame ,
        if 'locator' is not unique, use index Key attributes for frames are 'id' and 'name'.
        See 'introduction' for details about locating elements.

        Example:
        | select_frame_by_index | tag=iframe | 1 |
        """
        self.info("Selecting frame '%s'." % locator)
        elements = self.find_elements(locator)
        element = elements[int(index)]
        self.driver.switch_to.frame(element)

此时在RobotFramework可以通过如下方式选择frame
select frame by index

你可能感兴趣的:(Robotframework解决Selenium2Library中的select frame无法选择没有name也没有id的frame或者iframe的问题)