51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

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

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

[复制链接]

该用户从未签到

81#
 楼主| 发表于 2009-1-14 16:39:59 | 只看该作者
尝试selenium server 的 multiwindow 模式
原帖由 fairylly 于 2009-1-14 16:20 发表


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

使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    82#
    发表于 2009-1-14 17:14:46 | 只看该作者
    原帖由 bruce.gu 于 2009-1-14 16:39 发表
    尝试selenium server 的 multiwindow 模式


    使用multiwindow模式,可以解决该问题,谢谢。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    83#
     楼主| 发表于 2009-1-14 17:29:53 | 只看该作者
    恭喜,加油。呵呵
    原帖由 fairylly 于 2009-1-14 17:14 发表


    使用multiwindow模式,可以解决该问题,谢谢。。。
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    84#
    发表于 2009-1-14 17:49:47 | 只看该作者

    还想问个问题:
    你是否有遇到过:同样的代码,SRC运行时,有时通过,有时不通过呢?

    不通过的地方,通常是waitForPageToLoad超时
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    85#
     楼主| 发表于 2009-1-15 09:51:33 | 只看该作者
    这个很正常,有时候服务器或者网络慢,那就超时了喽。
    可以wait时间长一点试试。不过selenium默认最长等待时间是30s。如果你要设置更加长的,你要先selenium.setTimeout(timeout);然后再selenium.waitForPageToLoad(timeout).

    另外 如果是ajax里面,不是整个页面load的话,还用wait for element to present 好。
    原帖由 fairylly 于 2009-1-14 17:49 发表

    还想问个问题:
    你是否有遇到过:同样的代码,SRC运行时,有时通过,有时不通过呢?

    不通过的地方,通常是waitForPageToLoad超时
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    86#
    发表于 2009-1-15 10:02:59 | 只看该作者
    出错的时候,一段时间内(有时几小时,有时一天)都是同一个地方出错;不是一会正常一会出错,而是持续性的

    而且我开WEB端,手动点击时,也都是很快反映过来的
    应该不是网络和服务器的问题
    其它反映慢的页面都能正常加载,原本加载很快的页面反而出错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    87#
     楼主| 发表于 2009-1-15 11:40:55 | 只看该作者
    是不是这个地方根本不需要这个命令?出错的时候,可以用Thread.sleep(); 代替来调式一下。
    原帖由 fairylly 于 2009-1-15 10:02 发表
    出错的时候,一段时间内(有时几小时,有时一天)都是同一个地方出错;不是一会正常一会出错,而是持续性的

    而且我开WEB端,手动点击时,也都是很快反映过来的
    应该不是网络和服务器的问题
    其它反映慢的页面都能 ...
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    88#
    发表于 2009-1-15 12:04:10 | 只看该作者
    原帖由 bruce.gu 于 2009-1-15 11:40 发表
    是不是这个地方根本不需要这个命令?出错的时候,可以用Thread.sleep(); 代替来调式一下。


    可以不要waitForPageToLoad函数时,我也加了这句,会有影响吗?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    89#
     楼主| 发表于 2009-1-15 13:22:55 | 只看该作者
    好像会有影响的。。去掉试试看好了。
    原帖由 fairylly 于 2009-1-15 12:04 发表


    可以不要waitForPageToLoad函数时,我也加了这句,会有影响吗?
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    90#
    发表于 2009-1-15 14:12:56 | 只看该作者
    确实有影响
    如果页面没有变化,或变化太快,使用waitForPageToLoad函数,反而会造成超时出错
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    91#
    发表于 2009-1-15 16:58:46 | 只看该作者
    运行脚本过程中,使用的是FF浏览器
    但一些操作会导致出现:


    使用selenium.getConfirmation();,会提示说:There were no confirmations
    是否有什么其它解决方案呢?
    (注:FF下手动操作时,没有该弹出框,只有在eclipse中运行脚本时,浏览器里才会有该弹出框)

    尝试在FF的“工具”->“选项”中,修改一些配置,但没有效果
    selenium中是否有什么方法可行呢?

    可以使用selectWindow吗?但这种情况下,我也不知道应该如何使用它

    本帖子中包含更多资源

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

    x
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    92#
     楼主| 发表于 2009-1-15 17:30:28 | 只看该作者
    多次提交造成的吧。
    原帖由 fairylly 于 2009-1-15 16:58 发表
    运行脚本过程中,使用的是FF浏览器
    但一些操作会导致出现:
    48645

    使用selenium.getConfirmation();,会提示说:There were no confirmations
    是否有什么其它解决方案呢?
    (注:FF下手动操作时,没有该弹出框 ...
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    93#
    发表于 2009-1-15 17:33:19 | 只看该作者
    切换页面风格,即整个WEB的TPL模版全部变化导致的
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    94#
     楼主| 发表于 2009-1-16 14:31:40 | 只看该作者

    try{
    selenium.getConfirmation();
    }catch(Exception e){}
    试试
    原帖由 fairylly 于 2009-1-15 17:33 发表
    切换页面风格,即整个WEB的TPL模版全部变化导致的
    回复 支持 反对

    使用道具 举报

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

    连续签到: 1 天

    [LV.2]测试排长

    95#
    发表于 2009-1-19 08:43:26 | 只看该作者
    原帖由 bruce.gu 于 2009-1-16 14:31 发表

    try{
    selenium.getConfirmation();
    }catch(Exception e){}
    试试


    使用try catch不行
    打印错误信息,还是com.thoughtworks.selenium.SeleniumException: ERROR: There were no confirmations这个弹出框是FF浏览器本身弹出的,不是程序代码导致的
    所以用selenium.getConfirmation应该是捕获不到的吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    96#
     楼主| 发表于 2009-1-19 09:32:20 | 只看该作者
    对的,浏览器本身的是捕获不到的,selenium只能捕获js的。alert, confirmation 之类。
    原帖由 fairylly 于 2009-1-19 08:43 发表


    使用try catch不行
    打印错误信息,还是com.thoughtworks.selenium.SeleniumException: ERROR: There were no confirmations这个弹出框是FF浏览器本身弹出的,不是程序代码导致的
    所以用selenium.getConfirmati ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    97#
    发表于 2009-1-19 11:21:15 | 只看该作者
    hi, 我有一个问题要请教。
    现在需要按“moody's NRDE"按钮,然后进入到下一个界面中,这个操作在IE上是可以通过的。但是用selenium跑的时候页面就不能跳转到下一个界面了,并且提示"done. but with errors on page."这是怎么回事?
    sever 上有一个报错是:
    warn-invalid length: content-length=22395 written=16047 for http://mdynycdssmdev.ad.moodys.n ... E2E2_DDS/MOODYS.CSS

    我的代码如下:
    public void test() throws Throwable {
    ... ...
                    selenium.selectFrame("Tree");            
                    selenium.click("GotoNRDE");
                    selenium.waitForPageToLoad("50000");
        }


    [ 本帖最后由 nosedive 于 2009-1-19 11:37 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    98#
     楼主| 发表于 2009-1-19 13:14:24 | 只看该作者
    用selenium IDE 在firefox 上面跑一下你下面三条命令看。
    原帖由 nosedive 于 2009-1-19 11:21 发表
    hi, 我有一个问题要请教。
    现在需要按“moody's NRDE"按钮,然后进入到下一个界面中,这个操作在IE上是可以通过的。但是用selenium跑的时候页面就不能跳转到下一个界面了,并且提示"done. but with errors on page. ...
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    99#
    发表于 2009-1-19 15:53:31 | 只看该作者
    我们的系统不支持firefox。。。没办法在FF里跑,我直接抓取到对象,然后写的代码。

    [ 本帖最后由 nosedive 于 2009-1-19 16:17 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    100#
    发表于 2009-1-19 17:30:04 | 只看该作者
    原帖由 nosedive 于 2009-1-19 15:53 发表
    我们的系统不支持firefox。。。没办法在FF里跑,我直接抓取到对象,然后写的代码。


    问题解决了,我之前写的不清楚,估计很难找到问题。其实是这样的。“GotoNRDE”不是一个简单的button,click它之后其实是调用了一个javascript。然后我猜想问题是出在页面加载JS上了。因为selenium在运行的时候会在回放的页面底部整合进两个frame,就是我们看selenium的控制台。但是当页面调用JS时,可能涉及到页面frame,如果这个JS写的不严谨的话,就可能找不到对应的frame,所以页面就出错了。
    然后在运行selenium时把底部的frame给去掉就可以了。
    不知道我说清楚了没有,总之如果大家遇到这样的问题可以这么试试。另外,我觉得其实可以的话,最好能建议SE把代码改一改。,毕竟你不能确定客户会在IE上加载什么。
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-24 06:09 , Processed in 0.080771 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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