解决Selenium2Library中的select frame无法选择没有名字,没有id的frame或者iframe的问题

Selenium2Library中原有的select_frame函数(对应的关键字为select frame)可根据locator选择frame,但是,若某个frame或者iframe没有id,没有name,而页面存在多个frame或者iframe,则原函数无法实现选择该frame或者iframe的功能。其原因是原函数默认locator可以唯一选择。

解决方法为修改Selenium2Library中的select_frame函数,支持索引选择功能

找到,%PythonHome%\Lib\site-packages\Selenium2Library\keywords\_browsermanagement.py

打开它,找到select_frame这个方法。

将代码修改为如下:修改后的select_frame函数如下:

    def select_frame(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.
        """
        if locator.startswith("tag") :
            elements = self._element_find(locator, False, True)
            element = elements[int(index)]
        else:
            element = self._element_find(locator, True, True)
        self._current_browser().switch_to_frame(element)

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

select frame tag=iframe 1
时间: 2024-10-04 03:53:04

解决Selenium2Library中的select frame无法选择没有名字,没有id的frame或者iframe的问题的相关文章

Selenium2Library中select frame关键字对没有name和id的frame或者iframe的处理

elenium2Library中原有的select_frame函数(对应的关键字为select frame)可根据locator选择frame,但是,若某个frame或者iframe没有id,没有name,而页面存在多个frame或者iframe,则原函数无法实现选择该frame或者iframe的功能.其原因是原函数默认locator可以唯一选择. 解决方法为修改Selenium2Library中的select_frame函数,支持索引选择功能 找到,模块_browsermanagement.p

如何解决FormView中实现DropDownList连动选择时出现 "Eval()、XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误

原文:如何解决FormView中实现DropDownList连动选择时出现 "Eval().XPath() 和 Bind() 这类数据绑定方法只能在数据绑定控件的上下文中使用" 的错误 FormView控件是可及显示.修改.添加.删除为一体的控件,感觉很好用,可是昨天发现了一个可以说是它的一个Bug吧,我是想要实现下拉框的联动效果,比如在A下拉框选择了省对应B的下拉框会把对应A中省的市显示在B下拉框中,我想要实现的是校区和对应校区建筑的联动效果,单纯的这种效果很好实现比如下面的代码  

解决v-for中遍历多个el-select时,下拉选择框同步选择问题

当v-for遍历多个el-select时,由于v-model绑定的值为同一个,导致下拉选择时多个下拉选择框同步选择问题 如图是v-model绑定的同一个seatValue数据: 解决办法: 一.为el-select绑定不同的v-mode值,将v-for传递的index值绑定在v-model的参数上( v-model="seatValue[index]" ) 二.通过axios获取数据时,创建一个新的seatValue空数组,通过map遍历获取到的fourthContentArr里的每一

大开测试:性能—如何解决脚本中的乱码问题(连载7)

7.7  如何解决脚本中的乱码问题 1.问题提出 平时在对Web应用程序性能测试的时候,可能会出现录制的脚本中汉字变为乱字符的现象. 2.问题解答 在所有字符集中,最知名的可能要数被称为ASCII的7位字符集了.它是美国信息交换标准委员会(AmericanStandards Committee for Information Interchange)的缩写,为美国英语通信所设计.它由128个字符组成,包括大小写字母.数字0-9.标点符号.非打印字符(换行符.制表符等4个)以及控制字符(退格.响铃

Randomize select algorithm 随机选择算法

从一个序列里面选择第k大的数在没有学习算法导论之前我想最通用的想法是给这个数组排序,然后按照排序结果返回第k大的数值.如果使用排序方法来做的话时间复杂度肯定至少为O(nlgn). 问题是从序列中选择第k大的数完全没有必要来排序,可以采用分治法的思想解决这个问题.Randomize select 算法的期望时间复杂度可以达到O(n),这正是这个算法的迷人之处.具体的算法分析可以在<算法导论>这本书里查看. 贴出伪代码: RANDOMIZED-SELECT(A, p, r, i) 1 if p =

jsWindow 对象 Window 对象 Window 对象表示浏览器中打开的窗口。 如果文档包含框架(frame 或 iframe 标签),浏览器会为 HTML 文档创建一个 window 对象,并为每个框架创建一个额外的 window 对象。 注释:没有应用于 window 对象的公开标准,不过所有浏览器都支持该对象。 Window 对象集合 集合 描述 frames[] 返回窗口中所有命

一.JSX简介 JSX就是Javascript和XML结合的一种格式.React发明了JSX,利用HTML语法来创建虚拟DOM.当遇到<,JSX就当HTML解析,遇到{就当JavaScript解析. 如下(JS写法) var child1 = React.createElement('li', null, 'First Text Content'); var child2 = React.createElement('li', null, 'Second Text Content'); var

robotframework+Selenium2Library 特殊下拉框的选择

4 特殊下拉框的选择   对于这种下拉框,一拉啥没有. 代码中也没有任何可操作的select option标签等.如何是好. 既然下拉框,那就总可以选择.我们输入一个名“王XX”,下拉框自动出现这样. 但是怎么选择上?代码实在没有相应的元素来操作啊. 不过,我们操作键盘,向下键,enter键,即可成功选择. 那问题就变成如何在robotframework+selenium2library中操作键盘.api给的很简单,press key  xxxx. 查了向下键的ascii为40,enter键的为

解决JQuery中datatables设置隐藏显示列多次提交后台刷新数据的问题

此次项目开发过程中用到了Jquery的Datatables插件,无疑他是数据列表展示,解决MVC中同步过程中先走控制器后返回视图,查询数据过程中无法提示等待的弊端, 而且他所提供的各种方法也都有较强的实用性.但是再好的程序也会有瑕疵,项目开发中就遇到了其提供的设置隐藏显示列的方法 table.fnSetColumnVis(colShowDic_key[i], true);//colShowDic_key[i]为列的索引.会多次提交刷新数据(有多少列会提交刷新多少次). 为解决这个问题尝试了很多种

将Excel导入DataGridView 中的"select * from [Sheet1$]"中[ ]里面表单名的动态获取

Sheet1$是Excel默认的第一个表名,如果改动:select * from [Sheet1$]"将查询失败,因此应根据选择自动获取excel表名: 1 OpenFileDialog ofd = new OpenFileDialog(); //选择文件路径 2 ofd.Title = "Excel文件"; 3 ofd.FileName = ""; 4 ofd.Filter = "Excel文件(*.xls)| *.xls"; 5 s