我必须单击一个打开窗口的按钮,并且我想像这样检索该窗口的内容:
String master = browser.getWindowHandle();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@title=\"Quitter la session du portail actuelle et fermer la session\"]"))).click();
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> handles = browser.getWindowHandles();
for ( String handle : handles ) {
if(!handle.equals(master)) {
browser.switchTo().window(handle);
}
}
System.out.println(browser.getPageSource());
单击后该窗口确实会正确打开,但是控制台输出显示为:
null
我可以说我可以指向窗口,因为关闭它是有效的:
String master = browser.getWindowHandle();
wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//*[@title=\"Quitter la session du portail actuelle et fermer la session\"]"))).click();
wait.until(ExpectedConditions.numberOfWindowsToBe(2));
Set<String> handles = browser.getWindowHandles();
for ( String handle : handles ) {
if(!handle.equals(master)) {
browser.switchTo().window(handle);
}
}
browser.close();
我不知道我做错了什么,我无法操作窗口内的元素,因为我无法访问它。
编辑:
新窗口的网址:https://thatwebsite.fr/com.sap.portal.navigation.masthead.logoffConfirmMsg
来自新窗口的 HTML:
<table datatable="0" border="0" cellspacing="5" cellpadding="0">
<tbody>
<tr>
<td class="ctrlMsgBarImgWarning"> </td>
<td class="ctrlTxtStd">Are you sure you want to log off?</td>
</tr>
<tr>
<td colspan="2" height="10"> </td>
</tr>
<tr>
<td align="left" nowrap="" colspan="2">
<a id="htmlb_465_htmlb_162_1" ct="B" title="Yes" st="" href="javascript:void(0);" ti="0" tabindex="0" class="urBtnStd" usedclasses="urBtnStdDsbl urBtnStdD urBtnStdDDsbl" ocl="if (htmlbButton_checkClick('htmlb_465_htmlb_162_1', event)) {return htmlbDoEvent(this,'C','onclick','0','htmlb_465_htmlb_162',1,1,'',0);}" onkeydown="return ur_Button_keypress(event)" onclick="return ur_Button_click(event);" style="text-align:center;overflow:visible;">Yes</a>
<a id="htmlb_465_htmlb_162_2" ct="B" title="No" st="" href="javascript:void(0);" ti="0" tabindex="0" class="urBtnStd" usedclasses="urBtnStdDsbl urBtnStdD urBtnStdDDsbl" ocl="if (htmlbButton_checkClick('htmlb_465_htmlb_162_2', event)) {return htmlbDoEvent(this,'C','onclick','0','htmlb_465_htmlb_162',2,1,'',0);}" onkeydown="return ur_Button_keypress(event)" onclick="return ur_Button_click(event);" style="text-align:center;overflow:visible;">No</a>
</td>
</tr>
</tbody>
</table>
我基本上想做的是单击Yes
按钮。