Selenium操作联动菜单

最近在用Selenium实现自动化测试的过程中遇到了一些问题,不太好解决,或者解决了也觉得不是特别好的办法,在这里写出来一个是记录一下,也向大家需求一下帮助,看看有没有更好的办法,谢谢!
  一个问题就是二级联动菜单,比如选择省市的二级联动菜单,在第一个菜单中选择省份后会触发二级菜单的load事件去 装载市区的option label。可如果单独用selenium.select(locator,label='xxx');的操作是无法触发二级菜单的load事件的,从而执行时无法找到相应的label。大家的建议都是用fireEvent、mouseUp、mouseDown之类的API进行调试,可这些方法仍没有解决我的问题。后来是通过先focus,再click,最后select的步骤进行操作才能触发事件并选到相应的label。实例如下:

selenium.focus(provinceCode);
selenium.click(provinceCode);
selenium.select(provinceCode,label='Beijing');
selenium.focus(cityCode);
selenium.click(cityCode);
selenium.select(cityCode,label='Beijing');

  可感觉这种方式毕竟繁琐,不知道有没有更好的方法可以直接触发事件,直接通过select进行操作。 不知道是不是我用的框架没有继承SeleniumTestCase。因为我们的框架是结合TestNG,通过@Factory和@Test标注进行测试Case文件解析,文件以htm形式存在,将tr/td标签解析为selenium可执行的命令执行自动化操作。如果大家有什么好的办法请留言告诉我吧,谢谢!
  其次就是对页面上js事件的处理,现在我能想到的就是用fireEvent()这个API。一个参数是要触发这个js的控件的xpath,另一个参数就是要触发的事件, 大家给的建议一般都是blur或focus,可尝试了很多次都没有成功。不知大家有没有更好的方法?或者了解这个API的大虾能不能给具体讲讲,为啥用blur/focus,这俩有什么区别?还有没有什么其他event可以用呢?谢谢!

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-11-05 14:54:46

Selenium操作联动菜单的相关文章

ASP + XML + JavaScript 实现动态无限级联动菜单

javascript|xml|菜单|动态|联动菜单 我做某个项目时,有需求的是做一个动态的无限级的联动菜单.由于本人比较懒于是上网找找有关的代码,但很多都没有满足需求,其中有一编文章是用 JavaScript对XML文件操作来实现无限级联动菜单的,我们可结合ASP来完成对数据库值的读取,然后写入XML文件,再用JavaScript 读出来并且控制它的联动.这儿的关键是把数据库内的N层数据类读出来然后正确写入XML文件中:我的数据库表结构是这样的:'tbl_Class 列名 数据类型 长度  说明

ASP + XML + &#106avascript 实现动态无限级联动菜单

xml|菜单|动态|联动菜单|xml|菜单|联动菜单 我做某个项目时,有需求的是做一个动态的无限级的联动菜单.由于本人比较懒于是上网找找有关的代码,但很多都没有满足需求,其中有一编文章是用JavaScript对XML文件操作来实现无限级联动菜单的,我们可结合ASP来完成对数据库值的读取,然后写入XML文件,再用JavaScript读出来并且控制它的联动.这儿的关键是把数据库内的N层数据类读出来:我的数据库表结构是这样的:'tbl_Class 列名 数据类型 长度 说明ClassID int 4

java实现的二级联动菜单效果_java

本文实例讲述了java实现的二级联动菜单效果.分享给大家供大家参考,具体如下: JSP代码: <%@ page language="java" pageEncoding="UTF-8"%> <html> <head> <title>二级菜单联动演示</title> <script type="text/javascript"> var req; window.onload=f

JS封装的三级联动菜单(使用时只需要一行js代码)_javascript技巧

前言 在实际的项目开发中,我们经常需要三级联动,比如省市区的选择,商品的三级分类的选择等等. 而网上却找不到一个代码完整.功能强大.使用简单的三级联动菜单,大都只是简单的讲了一下实现思路. 下面就给大家分享我在工作中封装并在项目中使用的三级级联操作代码,如有错误或者不当的地方欢迎大家指正. 使用简单(只需要一行代码) 可以根据需要设置是否显示"请选择"项 支持回调(在三级分类加载完成后触发回调事件) 支持一个页面多个级联菜单 演示效果预览: 三级联动封装 原理:将selec标签以及相关

php+mysql实现的二级联动菜单效果详解_php技巧

本文实例讲述了php+mysql实现的二级联动菜单效果.分享给大家供大家参考,具体如下: <!--php+mysql二级联动--> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>生成学院专业级联下拉菜单测试 </title> </head> <

PHP+JS三级菜单联动菜单实现方法_php技巧

本文实例讲述了PHP+JS三级菜单联动菜单实现方法.分享给大家供大家参考,具体如下: <html> <head> <title> 智能递归菜单-读取数据库 </title> <style> TD { FONT-FAMILY: "Verdana", "宋体"; FONT-SIZE: 12px; LINE-HEIGHT: 130%; letter-spacing:1px } A:link { COLOR: #9

jQuery实现的省市县三级联动菜单效果完整实例_jquery

本文实例讲述了jQuery实现的省市县三级联动菜单效果.分享给大家供大家参考,具体如下: 运行效果截图如下: 具体代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/

javascript 无刷新select联动菜单

联动菜单的实现方法: 1.确定数据格式: 首先,我们介绍一下创建 Option 的语法: var newOption = new Option(optionText, optionvalue); 根据上面的语法,我们知道 select 选项分 optionText 和 optionvalue 两个内容,optionText 即下拉框中我们看到的选项,而 optionvalue 则是提交的实际值.比如一个选项我们看到的是 "北京",而实际提交的值是 "010". 为了

thinkPHP实现的联动菜单功能详解

本文实例讲述了thinkPHP实现的联动菜单功能.分享给大家供大家参考,具体如下: 联动菜单,首先给你看看前端是怎么写的: <div id="newCat"> <div class="all_type" id="allGoogsCat">所有商品分类</div> <div class="spfl-warp <?php if(CONTROLLER_NAME != 'Index' || ACT