ウィンドウを開くボタンをクリックする必要があり、そのウィンドウの内容を次のように取得したいと考えています。
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();
ウィンドウにアクセスできないため、ウィンドウ内の要素を操作できません。
編集:
新しいウィンドウの URL: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
ボタンをクリックすることです。