【问题标题】:Selenium Webdriver is not able to locate the third browser popup windowSelenium Webdriver 无法定位第三个浏览器弹出窗口
【发布时间】:2016-01-02 02:28:14
【问题描述】:

我正在尝试单击弹出窗口中的链接。这是单击链接时打开的第三个窗口。我尝试使用 getWindowHandles 函数,但 webdriver 无法获取第三个窗口。

它打印两个窗口的 id,但是当第三个窗口打开时它无法找到它。请看下面的截图:

<body onunload="MyAction('Details')">
<div class="whiteDiv">
<form name="ModalForm">
<div class="title" width="98%">What would you like to do next?</div>
<div style="padding:0 20px 20px 20px;line-height:1.5em">
<img width="16" height="16" align="absmiddle" alt="View Details " src="/common/v1/images/icons/folder.png">
<a class="linkAction" onclick="MyAction('Details'); return false;" href="#">View Details</a>
<br>
<img width="16" height="16" align="absmiddle" alt="Schedule Next Action" src="/common/v1/images/icons/action_new.png">
<a class="linkAction" onclick="MyAction('NextAction'); return false;" href="#">Schedule Next Action</a>
<br>
<img width="17" height="16" align="absmiddle" alt="Send an email" src="/common/v1/images/icons/email_send.png">
<a class="linkAction" onclick="MyAction('Email'); return false;" href="#">Send an email</a>
<br>
<img width="16" height="16" align="absmiddle" alt="Write A letter" src="/common/v1/images/icons/letter_send.png">
<a class="linkAction" onclick="MyAction('Letter'); return false;" href="#">Write a letter</a>
<br>
<img width="16" height="16" align="absmiddle" alt="Make a phone call" src="/common/v1/images/icons/phone_out.png">
<a class="linkAction" onclick="MyAction('Phone'); return false;" href="#">Make a phone call</a>
<br>
<img width="16" height="16" align="absmiddle" alt="Add a meeting note" src="/common/v1/images/icons/note_new.png">
<a class="linkAction" onclick="MyAction('Note'); return false;" href="#">Add a meeting note</a>
<br>
<img width="16" height="16" align="absmiddle" alt="Schedule Next Action" src="/common/v1/images/icons/action_new.png">
<a class="linkAction" onclick="MyAction('Close'); return false;" href="#">Close details window</a>
</div>
</form>
<script language="javascript">
</div>
</body>
driver.switchTo().window(window2);        
driver.findElement(By.linkText("Call")).click();    
System.out.println("\nClicked on Call link");    
Thread.sleep(3000);     
driver.findElement(By.id("saveRecord")).click(); // It stucks on this line although it clicked on the link

System.out.println("\nClicking on Save Record link");    
driver.switchTo().activeElement();    
Assert.assertTrue(driver.findElement(By.linkText("View Details")).isDisplayed());    
driver.findElement(By.linkText("View Details")).click();

【问题讨论】:

  • 它可能不是一个新窗口..您是否尝试检查该弹出窗口中的元素并验证它是否真的是新的浏览器/wiindow?根据我的经验,我遇到了一些像这样显示的 iframe..就像新的弹出窗口一样..
  • @murali seleniumtrainer- Ide 能够找到该元素。但是在使用 ide 录制时,它会显示 [selectWindow |空 | ] 命令。窗口的html代码见帖子。
  • 感谢弹出窗口的 HTML 代码你能帮我处理这个弹出窗口来自的父窗口元素的 HTML 代码吗.. 只是你单击以获取此弹出窗口的元素的 HTML 代码

标签: selenium selenium-webdriver


【解决方案1】:

尝试使用Actions,看看能否点击成功:

Actions actionbuilder = new Actions(driver);
actionbuilder .moveToElement(webelement).click().build().perform();

【讨论】:

  • 是的,它起作用了,现在它在 driver.switchTo().activeElement() 上失败了;错误:driver.switchTo().activeElement();
  • 然后尝试使用windowHandle的初始方法。如果一切都设置好了,请将此标记为答案。
  • 有解决办法吗??
【解决方案2】:

您能否尝试使用driver.switchTo().activeElement(); 并检查是否有帮助。
如果这对您有帮助,请告诉我们。

【讨论】:

  • @Abhinav- 我监控的事情是,当我点击第二个窗口上的链接时,第三个弹出窗口出现后,代码卡在第二个窗口上。即点击第二个窗口的链接,它在点击命令时保留在第二个窗口上。
  • 您无法使用 windowHandle 或 switch().activeElement() 切换到弹出窗口??另外,你能发布你的Selenium代码sn-p吗?
  • driver.switchTo().window(window2); driver.findElement(By.linkText("Call")).click(); System.out.println("\n点击调用链接");线程.sleep(3000); driver.findElement(By.id("saveRecord")).click(); // 虽然点击了链接 System.out.println("\nClicking on Save Record link"); 但它仍然停留在这一行driver.switchTo().activeElement(); Assert.assertTrue(driver.findElement(By.linkText("查看详情")).isDisplayed()); driver.findElement(By.linkText("查看详情")).click();
  • 用你的代码编辑帖子,这里的代码很难在评论中阅读。
  • 是否能够使用“driver.findElement(By.id("saveRecord")”找到元素
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
相关资源
最近更新 更多