Seleniumは、このユースケースをそのまま使用することはできませんが、JavaScriptでMutationObserverを使用することで達成できます。私はあなたがセレンテストを書くために使用している言語を知らないが、あなたは非同期WasContentChangedメソッドを呼び出すために、タイマーのいくつかの種類を使用して、コンテンツの変更のために反応することができ
public static void StartWatchingForContentChange(this RemoteWebDriver driver, string containerId, int timeout = SearchElementDefaultTimeout)
{
driver.ExecuteScript(@"var $$expectedId = arguments[0];
__selenium_observers__ = window.__selenium_observers__ || {};
(function(){
var target = document.getElementById($$expectedId);
__selenium_observers__[$$expectedId] = {
observer: new MutationObserver(function(mutations) {
__selenium_observers__[$$expectedId].occured = true;
__selenium_observers__[$$expectedId].observer.disconnect();
}),
occured:false
};
var config = { attributes: true, childList: true, characterData: true, subtree: true };
__selenium_observers__[$$expectedId].observer.observe(target, config);
})();", containerId);
}
public static bool WasContentChanged(this RemoteWebDriver driver, string containerId)
{
return (bool) driver.ExecuteScript("return window.__selenium_observers__ && window.__selenium_observers__[arguments[0]].occured;", containerId)
}
に従うように、C#であなたが拡張メソッドを作成することができます。詳細についてはMutationObserverのドキュメントをお読みくださいhttps://developer.mozilla.org/pl/docs/Web/API/MutationObserver
[ask]をお読みください。試したコードやエラーメッセージなどの実行結果を提供してください。ページや関連するHTMLへのリンクも提供してください。 – JeffC