selenium2怎么解决无法处理对话框的问题?
本帖最后由 wsryyffs 于 2013-11-5 14:59 编辑弹出的对话框,用String[] handlesmain=new String;无法获取到,怎么解决这个问题啊?
对话框中要输入多个数据和点击按钮操作 你的弹框是windows 弹框?还是一个新的web页面?。。。如果是关于有多个web页面窗口。。。可以用switchto 方法。。比如说:
//Store the current window handle
String winHandleBefore = driver.getWindowHandle();
//Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
// Close the original window
driver.switchTo().window(winHandleBefore);
driver.close();
然后就 可以把焦点放在新打开的页面上。。。或者你如果知道新窗口的标题或者name直接用switchto方法也行的。。。 你的弹框是windows 弹框?还是一个新的web页面?。。。如果是关于有多个web页面窗口。。。可以用switchto 方 ...
joykao 发表于 2013-11-5 15:51 http://bbs.51testing.com/images/common/back.gif
弹出一个对话框,不是新的web页面,driver.getWindowHandles无法获取到弹出的对话框 回复 3# wsryyffs
你这个是常见的alert 弹框的话。。试试这个
Alert alert = driver.switchTo().alert();
//点击确定
alert.accept();
//取消
alert.dismiss(); 回复wsryyffs
你这个是常见的alert 弹框的话。。试试这个
Alert alert = driver.switchTo().al ...
joykao 发表于 2013-11-11 13:29 http://bbs.51testing.com/images/common/back.gif
不是alert弹出框,弹出窗口中有输入、选择、提交等操作 回复 5# wsryyffs
截图上来看看? 应该是个alert吧。。。只是上面有输入框和按钮啥的。。或者是个frame?
driver.switchTo().frame() 回复 6# joykao
测试地址:http://samples.msdn.microsoft.com/workshop/samples/author/dhtml/refs/showModalDialog2.htm
点击 Push To Create 这个是新页面,需要跳转window的 回复 7# wsryyffs
昏倒。。这不是一个新的页面么?
//Store the current window handle
String winHandleBefore = driver.getWindowHandle();
//Switch to new window opened
for(String winHandle : driver.getWindowHandles()){
driver.switchTo().window(winHandle);
}
// Close the original window
driver.switchTo().window(winHandleBefore);
driver.close();
这个不可以? 回复 9# joykao
joykao哥好辛苦 本帖最后由 wsryyffs 于 2013-11-15 11:41 编辑
回复wsryyffs
昏倒。。这不是一个新的页面么?
//Store the current window handle
String ...
joykao 发表于 2013-11-13 21:28 http://bbs.51testing.com/redirect.php?goto=;findpost&pid=3201989&ptid=994349]http://bbs.51testing.com/images/common/back.gif
十分抱歉,给的例子没有经过实践。
麻烦帮忙指导一下这个例子:
公网地址:http://minyi.runsky.com/?type=1
操作:点击选择,弹出的窗口中输入内容
存在的问题:目前只能获取1个窗口,即弹出窗口未获取到
driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='textfield']")).sendKeys("hello"); 会报错
代码如下:
Navigation navigation = driver.navigate();
navigation.to("http://minyi.runsky.com/?type=1");
try {
Thread.sleep(15000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='form1']/div/ol/ul/li/input")).click();
try {
Thread.sleep(10000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String[] handles=new String;
driver.getWindowHandles().toArray(handles);
for (int i = 0; i < handles.length; i++)
{
System.out.println("switch:"+i+":"+handles);
}
driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='textfield']")).sendKeys("hello");;
driver.quit();
本帖最后由 joykao 于 2013-11-15 13:39 编辑
回复 11# wsryyffs
你这个页面的是不需要switch的吧。。直接找到那些元素就可以了。。我试着打开你那个页面。。结果有js warning。。。我连选择按钮都点不了。。。。我勒个去。。。我貌似根本没办法取元素啊。。。。一定是我的打开方式不对:o 回复wsryyffs
你这个页面的是不需要switch的吧。。直接找到那些元素就可以了。。我试着打开你那 ...
joykao 发表于 2013-11-15 13:24 http://bbs.51testing.com/images/common/back.gif
是的,不switch能成功,辛苦了。
我测试的系统是内网,所以一直想从公网上找一个类似的好直接调试,但一直没有找到类似的情况,我再找找,麻烦大家了。 回复 10# Cris@Kaka
:loveliness: 回复 10# Cris@Kaka
:loveliness: 学习了 学习了
页:
[1]