我正在尝试编写一个脚本来访问思科无线局域网控制器 . 我正在使用Selenium和Chrome,而且我被困在登录页面上 . 据我所知,点击思科启动画面上的“登录”按钮会触发一个名为loginAction()的javascript,提示用户输入用户名和密码 .
我得到的问题是弹出登录框没有可识别的元素 . 显示登录框时,光标在用户名字段中已处于活动状态 . 似乎我可以使用sendKeys函数在当前活动的文本框中输入用户名,但它不起作用 . 由于我不知道文本框的id,我不能使用类似driver.findElement(By.id(“authlogin”)) . sendKeys(“username”);
看看其他论坛帖子,我也没有任何运气;它只是调出相同的启动画面并询问凭据,就像我在启动画面上手动点击'login'按钮一样 .
有没有人对此有任何想法?由于光标在用户名文本框中已经处于活动状态,因此它似乎相当简单 . 感谢您的帮助和建议!
3 回答
您也可以直接将用户名和密码插入到Url中 .
示例:http://username:password@yourUrl.com
所以在代码中你可以说(在c#中)
或者java
登录应用程序时我也遇到了类似的问题 . 由于为登录打开的Windows身份验证弹出窗口不是基于浏览器的弹出窗口,因此selenium无法直接与其进行交互 . 要与基于Windows的弹出窗口进行交互,您必须使用第三方工具,如AutoIT . 在为AutoIT进行设置之后,您只需在网址后添加一行代码,如下所示
有关如何使用AutoIT的更多信息,请查看第二种方法here或查看this文章
我最终使用AutoIT并为它编写一个简单的脚本来处理登录窗口 . 这是我用过的:
我使用这个Javascript函数在Selenium中调用了AutoIT脚本:
AutoIT脚本运行后,您可以回到使用Selenium .