問題が発生しました。私のウェブページにはDropDownList
コントロールがあります。DropDownList
(別の値を選択して)値が変更されると、ページが更新され、コンテンツがレンダリングされます。
そして、私はThread.Sleep(2000);
それが行く前に使用する必要がありFindElement
ます。
私の質問:ページが読み込まれるまで待つ最良の方法は何ですか?
私のコードには非常に多くのインスタンスがあるので、Thread.Sleep(2000)
これは問題に取り組むための最良の方法ではないと思い始めています。
これが私のコードです:
[TestInitialize()]
public void Setup()
{
if (BaseIntegrationTest.browserType.Equals(BaseIntegrationTest.IE))
{
driver = new InternetExplorerDriver();
}
else if (BaseIntegrationTest.browserType.Equals(BaseIntegrationTest.CHROME))
{
//driver = new ChromeDriver();
}
else if (BaseIntegrationTest.browserType.Equals(BaseIntegrationTest.FIREFOX))
{
driver = new FirefoxDriver();
}
}
そして2番目の部分:
[TestMethod]
public void testVerifyData()
{
// ...................
// ...................
driver.FindElement(By.XPath("//*[@id='ctl00_NavigationControl1_lnke']")).Click();
Thread.Sleep(2000);
//select from the dropdownlist.
IWebElement catagory = driver.FindElement(By.Id("ctl00_ContentPlaceHolder1_Filter"));
SelectElement selectCatagory = new SelectElement(catagory);
selectCatagory.SelectByText("Employee");
Thread.Sleep(2000);
// ...................
// ...................
}