したがって、ロードするバックグラウンドのためにロードするのにかなり時間がかかるページが1つあります。私は、DOMがロードされreadyStateが '対話型'であるとすぐに、それと対話できるようにしたい。基本的には、私が移動する前にすべてのものを読み込む必要はないので、このページから私を連れ去るリンクをクリックしたいだけです。しかし、ページがロードされるまで、私はドライバでJavascriptを実行できないようです。何が起こるかは、ExecuteJavascript関数が私にもタイムアウトすることです。C#Selenium、ページがまだロードされている間にWebドライバでjavascriptを実行する方法
try
{
element.Click(); //BrowserCommandTimeout was set to 10 seconds
}
catch (Timeout e)
{
string state = driver.ExecuteJs("return document.readyState").ToString(); //Also times out after 10 seconds
while ((state != "complete") && state != "interactive")
{
Utilities.Sleep(2000);
}
}
誰もがこの問題を解決する方法を知っていますか?
あなたは、エスケープキーで '.SendKeysを()'やってみましたがありますか?これでページの読み込みが停止され、処理を続行できるはずです。私は他の誰かがそれを過去に試しているのを覚えているようです。私はそれが問題全体を解決するだろうが、あなたが少し早く行きたいところにあなたを得るかもしれないことはわかりません。 – JeffC