【发布时间】: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