Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Selenium:每次加载页面时调用方法_C#_Selenium - Fatal编程技术网

C# Selenium:每次加载页面时调用方法

C# Selenium:每次加载页面时调用方法,c#,selenium,C#,Selenium,每次某个文本出现在页面上时,我都试图抛出一个异常。为了实现这一点,方法应该在每次页面加载完成时检查是否应该抛出异常。我现在遇到的主要问题是点击,也就是当点击一个WebElement打开一个新页面时 如何实现在页面加载完成时始终调用自定义方法?以下是您问题的答案: 当我们通过默认配置使用WebDriver时,属性pageLoadStrategy设置为normal,这意味着一旦页面加载完全完成文档。readyState设置为complete,即WebDriver根据脚本执行下一个操作时 现在,如果您

每次某个文本出现在页面上时,我都试图抛出一个异常。为了实现这一点,方法应该在每次页面加载完成时检查是否应该抛出异常。我现在遇到的主要问题是点击,也就是当点击一个WebElement打开一个新页面时


如何实现在页面加载完成时始终调用自定义方法?

以下是您问题的答案:

当我们通过默认配置使用WebDriver时,属性
pageLoadStrategy
设置为
normal
,这意味着一旦页面加载完全完成
文档。readyState
设置为
complete
,即WebDriver根据脚本执行下一个操作时

现在,如果您想确信
document.readyState
设置为
complete
,您可以借助控制台上状态日志的
EplicitWait
在脚本中实现以下代码块:

IWait<IWebDriver> wait = new OpenQA.Selenium.Support.UI.WebDriverWait(driver, TimeSpan.FromSeconds(30.00));
wait.Until(driver => ((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
IWait wait=new OpenQA.Selenium.Support.UI.WebDriverWait(driver,TimeSpan.FromSeconds(30.00));
等待.Until(driver=>((IJavaScriptExecutor)driver).ExecuteScript(“returndocument.readyState”).Equals(“complete”);

如果这回答了您的问题,请告诉我。

您可以使用
document.readyState
检查页面是否已完全加载。