等待按钮被禁用 - 使用C#的{Selenium

时间:2016-06-22 18:51:58

标签: c# selenium

您好我正在尝试自动化我的网站测试。部分内容包括单击“添加”按钮,在文本框中输入信息并保存该信息。目前,只要我的脚本单击ADD按钮,它就不会等待并开始将值放在文本框中。 我试过了:

driver.Manage().Timeouts() 

我在想的是等待ADD按钮被禁用,然后在文本框中添加值。有没有办法实现这一目标?以下代码不正确并给我一个错误:

wait.Until(Driver.FindElement(By.Id("addbutton")).Enabled)==false;        

2 个答案:

答案 0 :(得分:0)

我假设你的addbutton有一个属性可以是:

  • enabled
  • disabled

你能尝试这种方法吗?假设在enableddisabled之间切换的属性名为status

IWebElement element = driver.FindElement(By.Id("addbutton"));
string buttonStatus = element.GetAttribute("status");

然后你可以构建一个等待其状态改变的循环,下面是伪代码:

IWebElement element = driver.FindElement(By.Id("addbutton"));
String buttonStatus = "enabled";
while (buttonStatus!="disabled")||(timeout<5000): (5000 mili seconds)
    buttonStatus = element.GetAttribute("status");
    advance your timer by 100 mS

如果按钮被禁用或已经过了5秒,您的循环将会存在。

答案 1 :(得分:0)

在这种情况下尝试WebDriverWait

WebDriverWait wait = new WebDriverWait(driver, new TimeSpan(0, 0, 0, 60));
wait.Until(ExpectedConditions.InvisibilityOfElementLocated(By.Id("addbutton")));