目前项目中遇到一个页面,有两个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