Selenium 常见问题

上一篇 / 下一篇  2011-06-23 17:45:44 / 个人分类:自动化/Selenium

Selenium 常见问题


.确认(verifation)和断言(assert)有什么区别?
  确认:当测试中的一个用例存在错误时,系统将会继续运行这些测试
  断言:当测试中的一个用例存在错误时,系统将会退出当前用例
  总而言之,确认和断言的不同在于,当出现错误情况之后,系统将会如何处理。

.test case 和 test suite的区别?
  test case是一个用例
  test suite是一组用例


7.selenium IDE, selenium core, selenium core hta, selenium rc四者的概念以及它们之间的区别?
  selenium IDE(集成开发环境)。它是一个firefox的插件,可以录制、回放并编辑测试脚本
  selenium Core(核心)。这是符合断言机制,由测试套件执行的平台。它是整个测试机制的核心部分,由纯javaScript代码组成
  selenium Core Hta.这是针对IE设计的执行平台,运行于IE的最高字全级别之上。
  selenium Remote Control(远程控制):它是一个代理与控制端,可代替selenium core/selenium DIE的客户端,并支持多语言

8.能不能在IE中录制脚本吗?
  不能,只能在firefox中安装selenium IDE,而只有selenium IDE才存在录制的功能。
  如果想测试一些,不能在firefox中正常显示的程序,则只有安装selenium RC,然后自己编写测试脚本,只有这样,脚本才能在ie中运行。

 

12.怎样安装多窗口模型?
   (1)启动selenium-server时,输入以下的命令:java -jar selenium-server.jar -multiwindow。则会在两个窗口中显示运行结果
   (2)启动selenium-server时,输入以下的命令:java -jar selenium-server.jar -singlewindow。则会在一个窗口中显示运行结果

15.怎样访问变量?
  ${变量名}


16.在录制的过程中,遇到了提示框的话,要怎样处理才能在正常的回放?


17.录制到邮件的时候,不能正常录制,要如何处理呢?
  录制的时候,首先要指定要框架,然后再输入文本。
  例如:邮件通过firebug定位为:
   

    在selenium ide中则需要手动的输入以下的内容:
  
  再输入一条以下的命令:selectFrame  relative=top
  则,此时的脚本就能正常的运行了。


18.录制到组件的时候,不能正常录制,要怎样处理?
   例如:上传附件(以及其它一些要上传的东西),刚发现附件并不是不能录制,而是你在界面中的定位不是很清楚,selenium不能识别。


19.录制时,会跳出多个窗口,此时要怎样处理?
   存在四种解决方法,可以参考http://www.boobooke.com/bbs/viewthread.php?tid=41824&highlight=selenium中的第七集
   具体方法如下:(1)java中可用如下的代码:String[] titles =selenium.getAllWindowTitles();               //得到所有窗口的标题
        selenium.selectWindow("title="+titles[titles.length-1]);   //选择最后打开的一个窗口
        selenium.close();                                               //关闭最后打开的一个窗口  
        selenium.selectWindow("null");                            //重新聚集在最开始的一个窗口(只有两个窗口的时候) 
   (2)java中可用如下的代码:selenium.click("link=????"); 换成如下的两行代码
            String url = selenium.getAttribute("link=????@href");
             selenium.open(url);
                         注:此方法也存在一定的缺陷,就是不能验证click点击事件是否正确。   
   (3)利用javascript去掉原代码中的target="_blank"的属性(目前为止还不清楚)
   (4)这种方法不清楚,看的不是很懂 

20.什么是window id?
   window id可以通过java中。selenium.getAllWindowId()方法得到,不过一般情况下都是undefined

 


22.selectFrame中的relative=up,relative=top,relative=parent等等,是什么意思?它们之间存在怎样的关系?

 

23.select,selectFrame,selectWindow,selectPopUp,这几个功能的用法,以及在什么时候用?
   select用来操作下拉框。语法:select(selectLocator,optionLocator) ,例:select id=person_person_type,lable=非户籍人口
   selectFrame用来操作iframe框架。语法:selectFrame(location) ,例: select xpath =//iframe[@name='abc']
   selectWindow用来操作多个窗口问题,至于如何操作可参考上面的19条的描述。
   selectPopUp:这种情况还没有遇到。

 

24.selectWindow 中的windowID怎样定位呢?

(1)title:就是一个window标题栏中的文本。
   (2)name:例:<a target="selenium_blank60273" href="http://bbs.51testing.com/">软件测试论坛</a>,则selectWindow name='selenium_blank60273'
   (3)var
 

25.录制完成之后,经常会出现回放不成功的情况,在这种情况之下要如何处理呢?
   (1)看是否要加上wait,很多的时候,只要你加上wait之后,回放就能正常运行了,例如:原本为click,会报错,修改为clickAndWait之后,系统就能正常回放
   (2)判断出错的地方,此地方是不是因为框架没有选对呢。例如:原本的框架为frame1,现在执行的操作在frame2时,此时要怎样处理?
               加上以下两条语句:selectFrame. relative=up, selectFrame. frame2Locator;

26.selenium ide不能录制的东西?
   (1)html5中部分元素不能录制
   (2)上传文件控件不能录制
   (3)用于绘图、图像编辑、文档设计、演示和web图形设计的集成应用软件不能录制
   (4)silverlight flex and flash不能录制


27.[warn] Link has target '_blank', which is not supported in Selenium!这个问题的原因?(可参考上文中的19)
 Link has target '_blank'这个好像是这样的:当Link有这个属性时,会打开新浏览器窗口,如果target是"_blank"的话,Selenium不能找到打开的新窗  口,如果target有一个明确的名字的话,selenium就能够找到这个打开的新窗口并在其上进行操作了。
 "_blank"的话,selenium不能保证一定找到找准这个窗口,所以给出警告,如果只有这样的一个窗口和主窗口,selenium通过一些变通的方法也能找到该窗  口,但是不保证。
 这是selenium本身限制的问题,暂时不晓得怎么解决,只要不影响测试就不用管这个警告。
    "selenium_blank4795 "这个应该是OpenQA里提给selenium的bug号吧?


28.可以直接在DOS环境下,在打开selenium-server.jar的解压目录的情况下,可以输入以下命令java -jar selenium-server.jar -singlewindow
   -htmlsuite  *iexpolrehttp://www.baidu.com"C:\Documents and Settings\zhuhui\桌面\testcase1" "C:\Documents and Settings\zhuhui\桌面   \result.html"时,系统会报错?
   对于这 个问题的解决方法,可参考http://bbs.51testing.com/thread-302909-1-1.html。由于要修改原码,所以我暂时还没有看。


29.com.thoughtworks.selenium.SeleniumException: XHR ERROR: URL =http://192.168.1.15:3000/loginResponse_Code = 500 Error_Message = Internal Server Error的原因是什么?
 

 

注:
 1.pop-up blocker的意思是:弹出窗口屏蔽(阻止未经许可弹出的窗口出现)

 2.选择一个框架之后,以后的命令都会在这个框架中,要想操作其它的框架,则必须要选择相应的框架才能进行相关的操作。

 3.目前在测试中,还没有遇到多个window之间转换的情况。现在只遇到多个frame转换的情况。

 

.java语言存在几种测试框架?
  目前为止,java语言存在两种测试框架:JUnit,testNG
 

怎样在多窗口中运行程序
   (1)启动selenium-server时,输入以下的命令:java -jar selenium-server.jar -multiwindow。则会在两个窗口中显示运行结果
   (2)启动selenium-server时,输入以下的命令:java -jar selenium-server.jar -singlewindow。则会在一个窗口中显示运行结果



TAG:

 

评分:0

我来说两句

Open Toolbar