51Testing软件测试论坛

标题: selenium2怎么解决无法处理对话框的问题? [打印本页]

作者: wsryyffs    时间: 2013-11-5 14:57
标题: selenium2怎么解决无法处理对话框的问题?
本帖最后由 wsryyffs 于 2013-11-5 14:59 编辑

弹出的对话框,用String[] handlesmain=new String[driver.getWindowHandles().size()];无法获取到,怎么解决这个问题啊?
对话框中要输入多个数据和点击按钮操作
作者: joykao    时间: 2013-11-5 15:51
你的弹框是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方法也行的。。。
作者: wsryyffs    时间: 2013-11-11 10:32
你的弹框是windows 弹框?还是一个新的web页面?。。。如果是关于有多个web页面窗口。。。可以用switchto 方 ...
joykao 发表于 2013-11-5 15:51


弹出一个对话框,不是新的web页面,driver.getWindowHandles无法获取到弹出的对话框
作者: joykao    时间: 2013-11-11 13:29
回复 3# wsryyffs

你这个是常见的alert 弹框的话。。试试这个


Alert alert = driver.switchTo().alert();
//点击确定
alert.accept();
//取消
alert.dismiss();
作者: wsryyffs    时间: 2013-11-12 08:36
回复  wsryyffs

你这个是常见的alert 弹框的话。。试试这个


Alert alert = driver.switchTo().al ...
joykao 发表于 2013-11-11 13:29


不是alert弹出框,弹出窗口中有输入、选择、提交等操作
作者: joykao    时间: 2013-11-12 10:13
回复 5# wsryyffs


截图上来看看? 应该是个alert吧。。。只是上面有输入框和按钮啥的。。或者是个frame?

driver.switchTo().frame()
作者: wsryyffs    时间: 2013-11-13 17:10
回复 6# joykao


    测试地址:http://samples.msdn.microsoft.co ... howModalDialog2.htm

点击 Push To Create
作者: 六月天    时间: 2013-11-13 17:26
这个是新页面,需要跳转window的
作者: joykao    时间: 2013-11-13 21:28
回复 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();  

这个不可以?
作者: Cris@Kaka    时间: 2013-11-15 09:51
回复 9# joykao

joykao哥好辛苦
作者: wsryyffs    时间: 2013-11-15 11:30
本帖最后由 wsryyffs 于 2013-11-15 11:41 编辑
回复  wsryyffs


    昏倒。。这不是一个新的页面么?
//Store the current window handle  
String ...
joykao 发表于 2013-11-13 21:28 [url=http://bbs.51testing.com/redirect.php?goto=;findpost&pid=3201989&ptid=994349][/url]


十分抱歉,给的例子没有经过实践。
麻烦帮忙指导一下这个例子:
公网地址:http://minyi.runsky.com/?type=1
操作:点击选择,弹出的窗口中输入内容
存在的问题:目前只能获取1个窗口,即弹出窗口未获取到
driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='textfield']")).sendKeys("hello"); 会报错

代码如下:
  1. Navigation navigation = driver.navigate();
  2. navigation.to("http://minyi.runsky.com/?type=1");

  3. try {
  4. Thread.sleep(15000);

  5. } catch (InterruptedException e) {
  6. // TODO Auto-generated catch block
  7. e.printStackTrace();
  8. }



  9. driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='form1']/div/ol/ul[1]/li[3]/input[2]")).click();

  10. try {
  11. Thread.sleep(10000);

  12. } catch (InterruptedException e) {
  13. // TODO Auto-generated catch block
  14. e.printStackTrace();
  15. }

  16. String[] handles=new String[driver.getWindowHandles().size()];
  17. driver.getWindowHandles().toArray(handles);

  18. for (int i = 0; i < handles.length; i++)
  19. {
  20. System.out.println("switch:"+i+":"+handles[i]);
  21. }

  22. driver.switchTo().frame("main").findElement(By.xpath(".//*[@id='textfield']")).sendKeys("hello");;


  23. driver.quit();
复制代码

作者: joykao    时间: 2013-11-15 13:24
本帖最后由 joykao 于 2013-11-15 13:39 编辑

回复 11# wsryyffs


    你这个页面的是不需要switch的吧。。直接找到那些元素就可以了。。我试着打开你那个页面。。结果有js warning。。。我连选择按钮都点不了。。。。我勒个去。。。我貌似根本没办法取元素啊。。。。一定是我的打开方式不对
作者: wsryyffs    时间: 2013-11-15 14:56
回复  wsryyffs


    你这个页面的是不需要switch的吧。。直接找到那些元素就可以了。。我试着打开你那 ...
joykao 发表于 2013-11-15 13:24



    是的,不switch能成功,辛苦了。
  我测试的系统是内网,所以一直想从公网上找一个类似的好直接调试,但一直没有找到类似的情况,我再找找,麻烦大家了。
作者: joykao    时间: 2013-11-15 15:55
回复 10# Cris@Kaka


   
作者: joykao    时间: 2013-11-15 15:55
回复 10# Cris@Kaka


   
作者: liyanone2006    时间: 2014-4-2 13:08
学习了
作者: eodest    时间: 2015-4-17 09:54
学习了




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2