Javascript Selenium Webdriver处理弹出窗口
我正在尝试自动化我的项目的登录场景。 点击URL后,甚至在页面加载之前,还会出现一个弹出的身份验证窗口。 如果我们不通过那个窗口,我们就看不到主页 问题是,一旦弹出窗口出现,我就无法使用firebug检查元素,它不允许我单击其他任何地方 我试图处理窗口,但控件仍然无法进入用户名和密码文本框。 我试过windowhandle,机器人类,但没用。 请任何人都能帮忙 下面是一段代码:-Javascript Selenium Webdriver处理弹出窗口,javascript,selenium,Javascript,Selenium,我正在尝试自动化我的项目的登录场景。 点击URL后,甚至在页面加载之前,还会出现一个弹出的身份验证窗口。 如果我们不通过那个窗口,我们就看不到主页 问题是,一旦弹出窗口出现,我就无法使用firebug检查元素,它不允许我单击其他任何地方 我试图处理窗口,但控件仍然无法进入用户名和密码文本框。 我试过windowhandle,机器人类,但没用。 请任何人都能帮忙 下面是一段代码:- Set<String> handles = driver.getWindowHandles(); //
Set<String> handles = driver.getWindowHandles(); // get all window handles
System.out.println(handles.size());
Iterator<String> iterator = handles.iterator();
while (iterator.hasNext()){
subWindowHandler = iterator.next();
}
driver.switchTo().window(subWindowHandler);
also the robot class:-
Robot rb = new Robot();
//Enter user name by ctrl-v
StringSelection username = new StringSelection("myusername");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(username, null);
Thread.sleep(2000);
river.switchTo().window(mainHandle);
rb.keyPress(KeyEvent.VK_A);
rb.keyRelease(KeyEvent.VK_A);
rb.keyPress(KeyEvent.VK_M);
rb.keyRelease(KeyEvent.VK_M);
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);
//tab to password entry field
rb.keyPress(KeyEvent.VK_TAB);
rb.keyRelease(KeyEvent.VK_TAB);
Thread.sleep(2000);
//Enter password by ctrl-v
StringSelection pass = new StringSelection("password");
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(pass, null);
rb.keyPress(KeyEvent.VK_CONTROL);
rb.keyPress(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_CONTROL);
//press enter
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_ENTER);
//wait
Thread.sleep(5000);
Set handles=driver.getWindowHandles();//获取所有窗口句柄
System.out.println(handles.size());
迭代器迭代器=handles.Iterator();
while(iterator.hasNext()){
subWindowHandler=iterator.next();
}
driver.switchTo().window(子WindowHandler);
还有机器人类:-
Robot rb=新机器人();
//按ctrl-v键输入用户名
StringSelection用户名=新StringSelection(“myusername”);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(用户名,null);
《睡眠》(2000年);
river.switchTo()窗口(主手柄);
rb.keyPress(KeyEvent.VK_A);
rb.keyrease(KeyEvent.VK_A);
rb.keyPress(KeyEvent.VK_M);
rb.keyrease(KeyEvent.VK_M);
rb.keyPress(KeyEvent.VK_控件);
rb.keyPress(KeyEvent.VK_V);
rb.keyrease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_控件);
//“密码输入”字段的选项卡
rb.keyPress(KeyEvent.VK_选项卡);
rb.keyRelease(KeyEvent.VK_选项卡);
《睡眠》(2000年);
//通过ctrl-v输入密码
StringSelection pass=新StringSelection(“密码”);
Toolkit.getDefaultToolkit().getSystemClipboard().setContents(通过,空);
rb.keyPress(KeyEvent.VK_控件);
rb.keyPress(KeyEvent.VK_V);
rb.keyrease(KeyEvent.VK_V);
rb.keyRelease(KeyEvent.VK_控件);
//按回车键
rb.keyPress(KeyEvent.VK_ENTER);
rb.keyRelease(KeyEvent.VK_输入);
//等等
睡眠(5000);
无法使用Selenium自动执行基于浏览器的身份验证
- 如果您的身份验证是基于http的,请尝试使用格式-
而不是http://username:password@example.com/
example.com
- 如果您仍然希望实现自动化,那么请使用第三方插件,如Selenium。AutoIt用于自动化基于windows的桌面应用程序,包括浏览器。这里有一些你可以参考的链接-
- 您还可以使用firefox插件,当您打开url时,它会自动验证弹出窗口。但这是一个手动设置,您必须执行一次身份验证,以便插件记住它
希望这能有所帮助。使用Selenium自动执行基于浏览器的身份验证是不可能的
- 如果您的身份验证是基于http的,请尝试使用格式-
而不是http://username:password@example.com/
example.com
- 如果您仍然希望实现自动化,那么请使用第三方插件,如Selenium。AutoIt用于自动化基于windows的桌面应用程序,包括浏览器。这里有一些你可以参考的链接-
- 您还可以使用firefox插件,当您打开url时,它会自动验证弹出窗口。但这是一个手动设置,您必须执行一次身份验证,以便插件记住它
希望这有帮助。你可以做一件事。你可以试试 若我们按下ESC按钮,那个么应用程序会多次停止处理 单击事件后,使用以下代码:-
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ESCAPE);
r.keyRelease(KeyEvent.VK_ESCAPE);
以上代码将为您按ESC键。现在您可以获得查找元素的时间
希望它能帮助你:)你可以做一件事。你可以试试 若我们按下ESC按钮,那个么应用程序会多次停止处理 单击事件后,使用以下代码:-
Robot r = new Robot();
r.keyPress(KeyEvent.VK_ESCAPE);
r.keyRelease(KeyEvent.VK_ESCAPE);
以上代码将为您按ESC键。现在您可以获得查找元素的时间
希望它能对您有所帮助:)你好,Girish,在页面加载之前,我尝试过的第一个选项不起作用,身份验证弹出窗口出现了。第二,我们如何将AutoIT与SeleniumWebDriver结合使用来实现u-plzz所描述的自动化,这是一个很大的过程。更新了答案,没有几个链接可以帮助您实现自动化。你好,Girish,第一个选项不起作用,我尝试了,在页面加载之前,身份验证弹出窗口出现。第二,我们如何将AutoIT与SeleniumWebDriver结合使用来实现u-plzz所描述的自动化,这是一个很大的过程。更新了答案,没有几个链接可以帮助您实现自动化。嗨,Shubham,我无法检查身份验证弹出窗口中的元素。它要求首先对该弹出窗口进行输入。嗨,Shubham,我无法检查该验证弹出窗口上的元素。它要求首先对弹出窗口进行输入。