Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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_Selenium Webdriver_Pageload_Webdriverwait - Fatal编程技术网

C#-Selenium-如何等待页面完全加载

C#-Selenium-如何等待页面完全加载,c#,selenium,selenium-webdriver,pageload,webdriverwait,C#,Selenium,Selenium Webdriver,Pageload,Webdriverwait,由于我的测试网站同步速度慢,我需要等待页面完全加载。我尝试了以下几种元素: WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(50)); wait.Until(ExpectedConditions.ElementExists(By.XPath("//input[@placeholder='First Name']"))).SendKeys("FirstName"); 我还尝试使用JavaScript方法,如:

由于我的测试网站同步速度慢,我需要等待页面完全加载。我尝试了以下几种元素:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(50));
wait.Until(ExpectedConditions.ElementExists(By.XPath("//input[@placeholder='First Name']"))).SendKeys("FirstName");
我还尝试使用JavaScript方法,如:

public static void WaitForLoadOriginal(IWebDriver driver)
{
    IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
    int timeoutSec = 15;
    WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, timeoutSec));
    wait.Until(wd => js.ExecuteScript("return document.readyState").ToString() == "complete");
}
这是我尝试选择的代码

<select name="question" id="question1" type="text" class="form-control ng-pristine ng-empty ng-invalid ng-invalid-required ng-touched" ng-required="true" 

当您试图沿WebDriverWait调用SendKeys()而不是ExpectedConditions子句时,根据您的代码块,您应该使用以下子句:

WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(20));
wait.Until(ExpectedConditions.ElementToBeClickable(By.XPath("//input[@placeholder='First Name']"))).SendKeys("FirstName");

为了执行等待页面加载的操作,这段代码对我来说很好

protected void WaitForPageLoad()
    {
        wait.Until(driver=>((IJavaScriptExecutor)driver).ExecuteScript("return document.readyState").Equals("complete"));
    }

谢谢

我试过了。无法解决问题。仍然失败。
无法解决
问题,而且
仍然失败
无法说明发生了什么错误。使用相关HTML、代码试用和错误堆栈跟踪更新问题。由于
Thread.Sleep(20000)
对您有效,请尝试将时间跨度增加到20秒您的HTML
IWebElement安全性问题1=wait.Until(ExpectedConditions.element可禁用(By.Id(“问题1”);SelectElement DropDownSecurity Question1=新的SelectElement(安全问题1);下拉安全问题1.选择索引(1);