51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

楼主: bruce.gu
打印 上一主题 下一主题

Selenium 连续记录【有啥问题可以在这里问,一起讨论】

[复制链接]

该用户从未签到

61#
发表于 2009-1-8 16:12:27 | 只看该作者

回复 59# 的帖子

谢谢你,但是我想waitforpagetoload ,这个命令不是只有在等待网页的时候可以用 如果等待某一个按键或者某一个元素的话,是不是不能用呢?
回复 支持 反对

使用道具 举报

该用户从未签到

62#
 楼主| 发表于 2009-1-8 16:54:20 | 只看该作者
waitforpagetoload  只有这个页面load的时候可用。。ajax的局部页面loading 不能用。
原帖由 gchao 于 2009-1-8 16:12 发表
谢谢你,但是我想waitforpagetoload ,这个命令不是只有在等待网页的时候可以用 如果等待某一个按键或者某一个元素的话,是不是不能用呢?
回复 支持 反对

使用道具 举报

该用户从未签到

63#
发表于 2009-1-8 16:57:05 | 只看该作者
网站是Ajax技术的,怎么样才能让selenium IDE执行完一个命令之后再执行下一个命令? 觉得有些时候,selenium IDE运行太快的话,在同一个页面,运行完一个命令后,还没有等到网页执行完这个命令后,就执行了下一个命令,这样的话上一个命令网页还没有响应,就到下一个命令了,所以我做的自动运行有时候就会出错,除了pause可以解决这个问题,其他有没有好点的命令可以解决,谢谢。
回复 支持 反对

使用道具 举报

该用户从未签到

64#
 楼主| 发表于 2009-1-8 16:59:41 | 只看该作者
waitforvalue 只有能取到value 的控件才能用吧,一般用在textfield
我想waitforpresent 应该可以解决你的问题, 不知道是不是你写的locator有点问题。。建议用firebug + xpath checker
保证你使用的locator 在页面上对应唯一的控件

原帖由 gchao 于 2009-1-8 16:08 发表
很感谢bruce的回答,但是目前来讲,我现在只是刚刚接触到selenium IDE 这个软件,还没有涉及到编程方面的知识,而且现在来说问题主要是关于想找个一个可以取代pause的命令,网上看了一下waitforvalue这个命令可以,w ...
回复 支持 反对

使用道具 举报

该用户从未签到

65#
发表于 2009-1-8 17:03:36 | 只看该作者

回复 62# 的帖子

谢谢你,所以我有时候用wait for element present ,但是发现有些时候也不是很好用
回复 支持 反对

使用道具 举报

该用户从未签到

66#
发表于 2009-1-8 17:11:13 | 只看该作者

回复 64# 的帖子

谢谢,也就是说,现在我不用了wait for value 这个命令来测试? 还有value控件指的是什么
回复 支持 反对

使用道具 举报

该用户从未签到

67#
 楼主| 发表于 2009-1-8 17:39:31 | 只看该作者
function getInputValue(inputElement) {
    if (inputElement.type) {
        if (inputElement.type.toUpperCase() == 'CHECKBOX' ||
            inputElement.type.toUpperCase() == 'RADIO')
        {
            return (inputElement.checked ? 'on' : 'off');
        }
    }
    if (inputElement.value == null) {
        throw new SeleniumError("This element has no value; is it really a form field?");
    }
    return inputElement.value;
}

这个是selenium core 的代码。
只要有value属性,就可以获取到。当然input element 就稍微特殊一点,不一定需要 value attribute.
对于非input 也可以用getAttribute(locator+"@value")

原帖由 gchao 于 2009-1-8 17:11 发表
谢谢,也就是说,现在我不用了wait for value 这个命令来测试? 还有value控件指的是什么

[ 本帖最后由 bruce.gu 于 2009-1-8 17:40 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

68#
发表于 2009-1-12 09:36:50 | 只看该作者

回复 67# 的帖子

非常感谢你,我想问一个问题,就是selenium IDE 这里面的命令,有没有可以设置脚本最大运行时间的命令,比如说如果我想运行一个脚本文件最多五分钟,超过五分钟就运行下一个脚本文件,有这样的命令吗? 有的话请告知一二,谢谢,另外在我测试的网页中在一个地方会有对话框出现,但是有时候又不会存在,如果我想自动运行selenium IDE ,在这个地方应该怎么样进行设置,有没有这样的命令,有对话框出现就点击确定,然后进行下一步操作,没有对话框就直接进行下一步操作,如果有的话,请告诉一下,无比感谢!
回复 支持 反对

使用道具 举报

该用户从未签到

69#
 楼主| 发表于 2009-1-12 12:20:21 | 只看该作者
这些东西在ide里面我都没试过。实际上我很少用到ide。毕竟ide局限太多。
如果在rc模式下面的话。你说的两个问题都很容易解决。
第一个问题只要在程序里设一个计时的。
第二问题只要用 try{}catch(){} 来实现。
原帖由 gchao 于 2009-1-12 09:36 发表
非常感谢你,我想问一个问题,就是selenium IDE 这里面的命令,有没有可以设置脚本最大运行时间的命令,比如说如果我想运行一个脚本文件最多五分钟,超过五分钟就运行下一个脚本文件,有这样的命令吗? 有的话请告知一 ...
回复 支持 反对

使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    70#
    发表于 2009-1-13 15:36:28 | 只看该作者
    我是selenium新手
    这两天遇到一个问题:
    图片按钮链接页面,在IDE中回放可以成功
    放到selenium Core及eclipse中就会出错,提示后一条命令中的element找不到(实际是图片链接点击后,页面没有跳转成功,导致后面的命令失败的)

    eclipse中的图片链接命令:
    selenium.click("//li[@id='mm2']/a/span");

    是图片链接需要特殊处理,还是别的什么原因导致的呢?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    71#
    发表于 2009-1-13 16:56:45 | 只看该作者
    兄弟还是蛮强的,多交流交流
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    72#
     楼主| 发表于 2009-1-13 18:16:42 | 只看该作者
    两种情况: 1.click没成功,确认click的locator 正确,如果还不行,尝试一下mouseDown, mouseUp 代替click试试看。
              2.click之后没wait, 用一个wait for page to load 之类的。
    原帖由 fairylly 于 2009-1-13 15:36 发表
    我是selenium新手
    这两天遇到一个问题:
    图片按钮链接页面,在IDE中回放可以成功
    放到selenium Core及eclipse中就会出错,提示后一条命令中的element找不到(实际是图片链接点击后,页面没有跳转成功,导致后面的 ...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    73#
    发表于 2009-1-14 11:43:14 | 只看该作者
    原帖由 bruce.gu 于 2009-1-13 18:16 发表
    两种情况: 1.click没成功,确认click的locator 正确,如果还不行,尝试一下mouseDown, mouseUp 代替click试试看。
              2.click之后没wait, 用一个wait for page to load 之类的。



    1、click的locator是正确的,我是使用IDE自动获取到的,并确认没有错误
    2、尝试使用mouseDown代替click,但一样出错,mouseDown后有使用waitForPageToLoad函数
    3、click后有使用waitForPageToLoad函数
    但每次都是报waitForPageToLoad超时出错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    74#
    发表于 2009-1-14 11:44:21 | 只看该作者
    另使用loggingSeleniium时,是否只有在出错的时候才会记录日志文件,没有错误时,日志文件为空?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    75#
    发表于 2009-1-14 12:59:54 | 只看该作者
    原帖由 bruce.gu 于 2009-1-13 18:16 发表
    两种情况: 1.click没成功,确认click的locator 正确,如果还不行,尝试一下mouseDown, mouseUp 代替click试试看。
              2.click之后没wait, 用一个wait for page to load 之类的。



    图片链接已解决

    使用selenium.click("link=XXXX");这种link的方式可解决
    “XXXX”为源码:
    <li>XXXX<li>
    中的文字
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    76#
     楼主| 发表于 2009-1-14 13:32:59 | 只看该作者
    恭喜,link=xxx 是selenium 支持的一种locator, 其他的 id=xxx, name=xxx, xpath=xxx 之类
    原帖由 fairylly 于 2009-1-14 12:59 发表



    图片链接已解决

    使用selenium.click("link=XXXX");这种link的方式可解决
    “XXXX”为源码:
    XXXX
    中的文字
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    77#
     楼主| 发表于 2009-1-14 13:34:42 | 只看该作者
    loggingSelenium 不管 有没有错都记录的。
    另外loggingSelenium 好像更新够及时,跟不上selenium。 偶已经抛弃loggingSelenium 了。自己依葫芦画瓢做了一个适合自己的logging。
    原帖由 fairylly 于 2009-1-14 11:44 发表
    另使用loggingSeleniium时,是否只有在出错的时候才会记录日志文件,没有错误时,日志文件为空?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    78#
    发表于 2009-1-14 13:57:58 | 只看该作者
    我遇到一个新问题:

    脚本中有一句是:点击系统中的“退出”,并在确定提示框中点击“确定”
    即:selenium.click("link=退出");
      assertEquals("你确定要退出吗", selenium.getConfirmation());

    但运行时,会把整个浏览器窗口跳转到退出页面,这样就无法继续后面的脚本,包括tearDown()函数都不运行,eclipse的junit状态中,一直显示在运行状态。。。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    79#
     楼主| 发表于 2009-1-14 16:02:41 | 只看该作者
    不知道你是不是想选择 取消。
    selenium 碰到 getConfirmation 之类会默认 选择 Yes. 如果要在碰到confirmation 之类选No 的话。。在触发confirmation 事件之前 用 selenium.chooseCancelOnNextConfirmation();
    所以就在你click link 之前 把这个添加进去,然后confirmation 出来的的时候就选择成了cancel。



    原帖由 fairylly 于 2009-1-14 13:57 发表
    我遇到一个新问题:

    脚本中有一句是:点击系统中的“退出”,并在确定提示框中点击“确定”
    即:selenium.click("link=退出");
      assertEquals("你确定要退出吗", selenium.getConfirmation());

    但运行时, ...

    [ 本帖最后由 bruce.gu 于 2009-1-14 16:04 编辑 ]
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-2-28 12:22
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]测试排长

    80#
    发表于 2009-1-14 16:20:53 | 只看该作者
    原帖由 bruce.gu 于 2009-1-14 16:02 发表
    不知道你是不是想选择 取消。
    selenium 碰到 getConfirmation 之类会默认 选择 Yes. 如果要在碰到confirmation 之类选No 的话。。在触发confirmation 事件之前 用 selenium.chooseCancelOnNextConfirmation();
    所 ...


    我不是想“取消”,就是“确定”退出,查看确定退出后的页面是否是我想要的页面
    但退出后,退出页面会把整个浏览器替换,这样就没办法继续后面的工作了
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-5-3 09:45 , Processed in 0.076212 second(s), 22 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表