2017-06-05 142 views
-1

我最近开始学习selenium WebDriver。我试图自动完成启动浏览器和使用Firefox浏览器登录帐户的简单任务。selenium webdriver浏览器导航问题

我注意到的差异是当我手动打开浏览器并点击主页上的登录链接时,会弹出一个小弹出窗口来接受登录凭据。我使用Firebug捕获了元素(即用户名,密码和登录名)并完成了我的脚本(使用Java)。

但是,当我运行相同的脚本,点击主页上的登录链接后,浏览器导航到新页面(而不是在手动过程中打开的同一页面上弹出窗口)接受登录凭据(其Web元素(即用户名,密码和登录)值与手动过程中捕获的值完全不同)。最终导致“NoSuchElementException”。

为什么我们在通过硒启动浏览器时看到区别?还有如何在现场环境中处理这些场景?

任何帮助将不胜感激。

谢谢, 斯里兰卡。

+0

请阅读此问题(http://stackoverflow.com/help/how-to-ask)遵循指导原则并完善您的问题以显示您的努力,例如代码尝试解决问题,错误信息,如果有的话。 – thewaywewere

+0

@Sri你能考虑展示你的作品吗?谢谢 – DebanjanB

回答

0

有很多种方法来处理动态元素。一是如下:首先 ,differenciate其动态,并相应地改变数据试图找到像元素1.对于 文本框中 的XPath://输入[包含( @class,'公共数据')] 2.for按钮 XPath://按钮[开始于(@id,'以'开头的公共数据')] 如果您提供HTML代码。 希望这会有所帮助。

0

如果我理解正确,您说有2种不同类型的“登录”页面,并且您编写的脚本仅适用于其中一种。

所以你现在需要做的是编写一个如果条件检查登录页面类型检测,然后相应地执行认证。