我遇到了問題。我的網頁有一個DropDownList
控件。一旦DropDownList
值改變(通過選擇不同的值),頁面刷新並呈現內容。什麼是使用Webdriver使用Selenium的最佳方法
然後我必須使用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();
}
}
,第二部分:
[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);
// ...................
// ...................
}
感謝格雷格,所以我必須爲每個ID做?或者有什麼辦法可以讓我變得更抽象? – 2012-08-15 22:21:06
Np,如果你喜歡它,接受答案XD。只要將它作爲一個對象,如果你想重新調用它,那麼你可以只提供一個id作爲參數或任何東西,並在需要時重用它。這就是我所做的一切等待 – Greg 2012-08-15 23:23:24
你能告訴我你是怎麼做的嗎? – 2012-08-17 02:01:03