SharePoint (2013) 사이트 설정에서 일부 페이지를 스크랩하기 위해 PowerShell 솔루션을 개발 중이며 스크 레이 핑 중에 팝업되는 ModalDialog를 참조하는 방법에 대해 고민하고 있습니다. 이를 수행하는 방법에 대한 제안 사항이 있습니까?
입력 상자에서 데이터를 가져온 다음 "취소"를 클릭하여 이전 페이지로 돌아 가려고합니다.
모달을 호출하는 링크는 다음과 같습니다.
<td class='ms-authoringcontrols'>
<table cellspacing='0' cellpadding='0' border='0' class='ms-authoringcontrols'>
<a id="ctl00_PlaceHolderMain_editBB1" onclick="OpenBestBet('https:\u002f\u002www.example.com\u002fsites\u002fusa\u002fproductqualitysupport\u002fPages\u002fdefault.aspx'); return false;" href="#BestBet">Edit</a>
</table>
</td>
모달 대화 상자를 여는 JS 함수는 다음과 같습니다.
function OpenBestBet(bestBetUrl)
{
// make up the url to send to the BestBet page
bestBetUrl = bestBetUrl?escapeProperly(bestBetUrl):bestBetUrl;
var addedBestBets = document.forms[0].elements['ctl00_PlaceHolderMain_bestBet'].value ;
var keyword = escapeProperly(document.forms[0].elements['ctl00_PlaceHolderMain_keyword'].value);
var gotoUrl =
addQueryParametersToUrl('BestBet.aspx',['u','k','a'],[bestBetUrl,keyword,addedBestBets]);
var dialogOptions = {width:500, height:450};
SP.SOD.executeFunc('sp.ui.dialog.js', 'SP.UI.ModalDialog.showModalDialog', function() { SP.UI.ModalDialog.commonModalDialogOpen(gotoUrl,dialogOptions,AddBestBetCallback,[addedBestBets]); });
}
페이지에 표시되는 모습은 다음과 같습니다.
그리고 모달 대화 상자의 본문 태그는 다음으로 시작합니다.
<body>
<form method="post" action="BestBet.aspx?u=https%3a%2f%2fwww.example.com%2fsites%2fusa%2fproductsupport%2fPages%2fdefault.aspx&k=PQSS&IsDlg=1" onsubmit="javascript:return WebForm_OnSubmit();" id="BestBet">
<div class="aspNetHidden">
<input type="hidden" name="__REQUESTDIGEST" id="__REQUESTDIGEST" value="0xOBFUSCATED,29 Aug 2014 20:57:46 -0000" />
<input type="hidden" name="__EVENTTARGET" id="__EVENTTARGET" value="" />
<input type="hidden" name="__EVENTARGUMENT" id="__EVENTARGUMENT" value="" />
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/OBFUSCATED=" />
</div>
<script type="text/javascript">
//<![CDATA[
PowerShell 3.0, Net.WebClient, application.internetexplorer 개체를 사용하고 있으며 HtmlAgilityPack도 있지만 모달 대화 상자를 참조하는 방법을 알아낼 수 없습니다. 어떤 도움이라도 좋을 것입니다! 감사
궁극적으로 Selenium에서 Modal 창을 열고 닫을 수 있었지만 Selenium을 사용하여 값을 긁어내는 방법을 알아내는 데 시간이 걸리지 않았습니다.
PowerShell을 사용하여 Modal의 어떤 부분에도 액세스 할 수 없었지만 Modal 창의 소스 코드를 확인했을 때 헤더에서 전체 URL을 발견하고 상위 페이지의 정보에서 URL을 구성 할 수있었습니다. 이를 통해 PS에서 다른 IE 인스턴스를 시작하고 모달 모드가 아닌 URL을 열고 콘텐츠를 스크래핑하고 창을 닫을 수있었습니다.
URL 구성은 유니 코드 인코딩 및 URI 데이터 인코딩으로 약간 까다로 웠지만 해결되었습니다. 다른 사람들이 도움이 되었기를 바랍니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다