0

ウィンドウを開くボタンをクリックする必要があり、そのウィンドウの内容を次のように取得したいと考えています。

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">&nbsp;</td>
            <td class="ctrlTxtStd">Are you sure you want to log off?</td>
        </tr>
        <tr>
            <td colspan="2" height="10">&nbsp;</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ボタンをクリックすることです。

4

3 に答える 3