您好我正在尝试自动化我的网站测试。部分内容包括单击“添加”按钮,在文本框中输入信息并保存该信息。目前,只要我的脚本单击ADD按钮,它就不会等待并开始将值放在文本框中。 我试过了:
driver.Manage().Timeouts()
我在想的是等待ADD按钮被禁用,然后在文本框中添加值。有没有办法实现这一目标?以下代码不正确并给我一个错误:
wait.Until(Driver.FindElement(By.Id("addbutton")).Enabled)==false;
答案 0 :(得分:0)
我假设你的addbutton
有一个属性可以是:
enabled
disabled
你能尝试这种方法吗?假设在enabled
和disabled
之间切换的属性名为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")));