wtucel 发表于 2015-3-19 21:37:14

还是js弹出窗口的问题,感觉是webdriver的bug

这个问题基本同http://q.cnblogs.com/q/58180/这个里面的描述一样,
都是点击一个输入框后,js弹出了一个静态对话框(鼠标无法操作其他窗口)
当脚本执行到这里的,弹出窗口后就一直卡在那里,不再继续执行,也不超时报错。

尝试过多种方法,调js来触发、模拟鼠标来触发弹出窗口,都会挂掉。

不知道有没有人遇到过这种情况?怎么解决的?

zzhengjian 发表于 2015-3-19 22:24:35

你说的是alert 吧,js是不能处理的,但是webdriver 有接口,先switch到alert, 再accept alert就可以了。

wtucel 发表于 2015-3-20 09:32:35

这个不是Alert,是javascript弹出的窗口,问题还不是怎么切换到弹出窗口,而是弹出了窗口后代码就卡在那里不再执行下面的语句了。

感觉是因为弹出了窗口后页面的焦点已经固定到弹出窗口上,导致webdriver无法再操作原来的窗口,然后就一直卡在那了。

ntgecm 发表于 2015-3-20 11:02:40

用js处理也可以的

zzhengjian 发表于 2015-3-20 22:52:35

wtucel 发表于 2015-3-20 09:32
这个不是Alert,是javascript弹出的窗口,问题还不是怎么切换到弹出窗口,而是弹出了窗口后代码就卡在那里 ...

要不你截图看一下?或是把js生成这个框的代码贴出来看一下。我说的alert不单单是alert, prompt 和confirm 也是一样的。因为你说的弹出窗口后焦点固定到弹出窗口上就跟alert情况很像了。还有一种情况就是Authentication required的弹出框,这个确实是webdriver没办法解决,但是有workaround 方法。不知道你是哪种情况?

wtucel 发表于 2015-3-23 16:21:11

以下是这个输入框弹框的代码,调用了一个setAppProviderId方法,这个js方法看不到源码,是加密了的,但肯定不是alert、confirm、prompt之类,是加载的另一个网页,我后面还需求切换到这个弹出网页中输入数据和操作的。

<input type="text" id="custName" class="ui-textfield required readonly" normaltip="点击选择所属客户" requiredtip="所属客户不能为空" readonly="readonly" onclick="setAppProviderId();" tip="所属客户不能为空">

但现在一直是弹出了窗口就卡死,不再执行后面的代码。

wuranxu 发表于 2015-3-25 12:49:04

http://www.robotframework.net/article/13
虽然是在RF里面,但是基本也差不多。

zzhengjian 发表于 2015-3-26 18:24:52

wtucel 发表于 2015-3-23 16:21
以下是这个输入框弹框的代码,调用了一个setAppProviderId方法,这个js方法看不到源码,是加密了的,但肯定 ...

I googled about this issue, and found a bug in selenium official site may give you some solutions. Check this out https://code.google.com/p/selenium/issues/detail?id=284, you may need to access this through a VPN.

18210069424 发表于 2015-9-14 09:37:00

楼主,你好,请问你这个问题最后怎么解决的呀?

zip 发表于 2015-12-7 14:36:17

解决了吗??

1031365361 发表于 2016-6-20 12:04:02

你好,我也遇到了这个问题,请问你是怎么解决的:'(
页: [1]
查看完整版本: 还是js弹出窗口的问题,感觉是webdriver的bug