我寫了一段代碼登錄到一個正常工作的應用程序。現在我必須點擊一個添加按鈕,並且我已經通過Id,XPath
,ClassName
嘗試過,但它只是給了我找不到的元素的例外。我以爲我應該申請一個明確的等待,但它也沒有工作。請檢查我的代碼如下:元素未找到 - 硒
public static void Login()
{
Browser.Url = "http://example.com";
_username = Browser.FindElement(By.Id("UserName"));
var password = Browser.FindElement(By.Id("Password"));
var loginbtn = Browser.FindElement(By.ClassName("btn-primary"));
_username.SendKeys("admin");
password.SendKeys("123");
loginbtn.Click();
var supplierTab = Browser.FindElement(By.Id("mainSupplier"));
supplierTab.Click();
WebDriverWait wait = new WebDriverWait(Browser, TimeSpan.FromSeconds(20));
IWebElement myDynamicElement = wait.Until<IWebElement>((d) =>
{
try
{
return d.FindElement(By.Id("btnAddSupplier_SupplierForm"));
}
catch
{
return null;
}
});
var addbtn = Browser.FindElement(By.Id("btnAddSupplier_SupplierForm"));
addbtn.Click();
}
這總是會給出找不到元素的第二行代碼的例外。
下面是HTML:
'var addbtn = Browser.FindElement(By.Id(「btnAddSupplier_SupplierForm」));' 在這行代碼中出現錯誤。 – asma 2015-04-02 05:09:17
那麼,等20秒再超時? – Saifur 2015-04-02 05:11:05
是的,它等待,然後顯示超時。 – asma 2015-04-02 05:11:40