Selenium C#Webdriver,试图等待所有操作完成后再关闭
我使用的是Selenium Web驱动程序版本2.48.2 我的问题是,我想等待加载最后一个url,然后拍摄屏幕截图并关闭浏览器和驱动程序 因此,如果我调试会话,我可以看到我的所有方法都被立即调用,而不是等待浏览器加载,这是一个问题,因为如果我在最后一行代码中使用Quit()方法,浏览器会立即关闭,并且不会及时运行每一步 如果删除Quit()方法,浏览器将按预期运行我的所有场景 那么,有没有办法让驱动程序等到浏览器完成我的所有步骤Selenium C#Webdriver,试图等待所有操作完成后再关闭,c#,selenium-webdriver,C#,Selenium Webdriver,我使用的是Selenium Web驱动程序版本2.48.2 我的问题是,我想等待加载最后一个url,然后拍摄屏幕截图并关闭浏览器和驱动程序 因此,如果我调试会话,我可以看到我的所有方法都被立即调用,而不是等待浏览器加载,这是一个问题,因为如果我在最后一行代码中使用Quit()方法,浏览器会立即关闭,并且不会及时运行每一步 如果删除Quit()方法,浏览器将按预期运行我的所有场景 那么,有没有办法让驱动程序等到浏览器完成我的所有步骤 非常感谢您的帮助。这取决于正在发生的事情。最好的方法是使用显式等
非常感谢您的帮助。这取决于正在发生的事情。最好的方法是使用显式等待,等待元素出现在屏幕上 这将在其他进程完成后运行,您可以使用Wait.Until()测试新元素。use waits
IWebDriver driver = new FirefoxDriver();
driver.Url = "http://somedomain/url_that_delays_loading";
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));
IWebElement myDynamicElement = wait.Until<IWebElement>((d) =>
{
return d.FindElement(By.Id("someDynamicElement"));
});
setTimeout(functionThatAddsAnElementToTheDom,1);