发送密钥后,IWebElement的Text属性返回空字符串

时间:2017-08-06 05:36:19

标签: c# selenium

我正在为自动化测试人员开发一个库。我已经写了一个发送密钥的方法,在发送密钥后,我想验证天气文本内容是否设置正确。

public void SetValue(IWebelement element, string value)
{
   element.SendKeys(value);
   if(element.Text!=value)
      throw new Exception("Failed to set value.");
} 

在上面的片段中,我总是异常。是否有任何解决方案,无需在DOM中再次搜索元素即可进行同步。

2 个答案:

答案 0 :(得分:1)

SendKeys并未更改DOM,因此WebElement没有使用Text属性获取的文本。但是你可以使用

element.GetAttribute("value")

答案 1 :(得分:0)

您需要再次获取元素以检查是否添加了文本。 Web浏览器和驱动程序对象可能不同步。因此,再次创建相同元素的对象并检查文本。

public void CallingFunction(){
IWebElement el1= driver.FindElement(.....)// find control
SetValue(el1, value);
el1= driver.FindElement(.....)// find control again
CheckValue(el1, value)
}

public void SetValue(IWebelement element, string value)
{
   element.SendKeys(value);
}

public void SetValue(IWebelement element, string value)
{
   if(element.Text!=value)
      throw new Exception("Failed to set value.");
}