私はPlayStation StoreのページをHtmlUnitで読み込もうとしていますが、読み込むすべてのものが「読み込み中...」のテキスト(およびJavaScriptのビット)を含む空白のページのようです。 私は(そのkotlin)絶望的にHtmlUnitの仕事をするために、以下の構成を使用しますが、:HtmlUnitはPSNストアページの読み込みを停止しますか?
@Test
@Throws(Exception::class)
fun homePage() {
val webClient = WebClient(BrowserVersion.INTERNET_EXPLORER).apply {
ajaxController = NicelyResynchronizingAjaxController()
options.isUseInsecureSSL = true
options.isThrowExceptionOnScriptError = false
options.isJavaScriptEnabled = true
options.isCssEnabled = true
options.isRedirectEnabled = true
options.isThrowExceptionOnFailingStatusCode = false
options.isUseInsecureSSL = true
options.isDownloadImages = true
cookieManager.isCookiesEnabled = true
waitForBackgroundJavaScript(10000)
waitForBackgroundJavaScriptStartingBefore(10000)
}
val page = webClient.getPage<HtmlPage>("https://store.playstation.com/")
Thread.sleep(10000)
assertFalse(page.asXml().contains("Loading"))
}
私はページをロードする時に任意の特定のエラーが表示されない:
мая 09, 2017 4:08:22 PM com.gargoylesoftware.htmlunit.html.HtmlScript isExecutionNeeded
WARNING: Script is not JavaScript (type: application/json, language:). Skipping execution.
мая 09, 2017 4:08:22 PM com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController processSynchron
INFO: Re-synchronized call to https://sonynetworkentertainment.112.2o7.net/b/ss/snestorewebloadglobal/1/chidv1/s75296982536092?AQB=1&ndh=1&t=9%2F5%2F2017%2016%3A8%3A22%202%20-180&ts=1494335302&vid=c61f4752-adfd-84d1-728c-187350f9aa37&pageName=web%3Aloading_start&v1=D%3DpageName&g=https%3A%2F%2Fstore.playstation.com%2F&r=&v2=xx-xx&ch=web%3Aloading_start&c68=D%3Dg&c72=web&v72=web&cc=USD&ce=UTF-8&server=web&events=event1&AQE=1
мая 09, 2017 4:08:22 PM com.gargoylesoftware.htmlunit.NicelyResynchronizingAjaxController processSynchron
INFO: Re-synchronized call to https://store.playstation.com/kamaji/api/chihiro/00_09_000/geo
質問です:何が停止しますページの読み込みはHtmlUnitですか?私は自分自身でそれを理解しようとしましたが、私が来た唯一のアイデアは、HtmlUnitがサポートしていないヘッドレスブラウザや非常に重いJSに対する何らかの防御である可能性があるということです。しかし、例えば
は問題なく開くことができます。
ありがとう、私はそれがSPAであることを知っています。しかし、HtmlUnitはJSリクエストを処理でき、実際にはいくつかのSPAで動作します。私は間違った方法でJSの実行を待って使用したように見える – Ilya