selenium弹出窗出现了问题
我用的测试工具是selenium IDE录制过程:
在firefox浏览器下点击百度,搜索昆明三九手机网,点其链接进去后,点导航内的苹果系列。
结果录制回放的时候在点击《苹果系列》的这个行为上selenium出现错误。
错误信息:
Element link=苹果系列 not found;
能告诉我怎么解决此问题么?
我在selenium内转化C#后在winform控件中运行.
调试后,同样在这出现了异常,一开始我以为是需要加上等待时间.
selenium.WaitForPageToLoad("30000");加上后同样没用.
求各位大侠解释 ide里录制以后的回放可以成功么?表示从没转化过c#。。。 回复 2# jacksonren1987
可以的...就是会出现问题 没办法解决,javascript的安全策略,你只能在一个域里面操作,不能跨出去。
百度是一个域,其实你在录制的时候也看到了,你的base-URL就是baidu.com,那个手机网是另一个域,javascript不允许你从base-URL跳去另一个域进行操作的,所以找不到元素了。 回复 4# 六月天
能用C#嵌入浏览器么?这种方法可行么? click不行,试试clickAt方法。
再不行把Link换掉,用 Xpath, CSS等方法。
CSS=a
Xpath = //a
另外,如果是那种new window/frame的情况,需要用 switch_to_window/frame方法进行跳转,然后再操作。 回复 6# WANDY
能说得再详细点么?小弟新手..谢谢了:lol 6楼的方法应该同样解决不了问题。 我的思考是这样子的。
Click方法改为ClickAt 这个也是自带的,不过不知道C#里面有没有,如果没有的话,就不用替换了。EX: selenium.click==>> selenium.clickAt
或者更改查找对象的方法。如,改成Xpath或者CSS试试:
selenium.Click("Link=苹果系列"); ==>>selenium.Click("//a");
编码问题?(这个问题用python处理中文的时候我遇到过,不过C#我不清楚会不会有这类问题。)
试试在firefox运行。winform控件里运行不清楚-。-
基本上就这样了,如果楼主解决了这个问题,也希望分享一下方案。 都说了不是定位的问题,定位本身没有任何问题的,不信的话,去掉百度那一段,把url-base改成那个九州手机网的地址,然后用原来的click事件,完全是正常运行的。所以你不管改click还是clickat,不管用什么定位方法,只要是百度链接过去的,肯定只有一个结果:not found。
不解决同源问题就没办法跨域执行,就这么简单。所以这个问题别想了。 回复 9# WANDY
python怎么解决 Target,直接换上名称,就可以了。 没玩过,学习了 Thank you very much for sharing!The good man!The good life of peace! selenium ide不支持跨域。所以脚本找不到弹出页面的元素。 我也有这个问题 !
页:
[1]