c# - Element.Disabled 引发错误,因为找不到元素
问题描述
对于我的测试,我需要这个元素。禁用返回 false。
当测试到达未显示该元素的页面时,测试因未找到元素而失败。
以下代码失败,因为用户名文本框未显示在页面上
if (VerifyUsernameTextBox())
{
do something
}
public bool VerifyUsernameTextBox()
{
return username.Displayed; // code fails with no element found while return false is expected .
}
该怎么做,我得到 element.Displayed 为 false 。
解决方案
您通过 找到元素driver.findElement()
,对吗?请记住,findElement
如果找不到元素,则会引发异常,因此您需要正确处理它。
你可以这样做:
private bool IsUsernamePresent(By by)
{
try
{
driver.findElement(by);
return true;
}
catch (NoSuchElementException)
{
return false;
}
}
然后
public bool VerifyUsernameTextBox()
{
return IsUsernamePresent(By.Id("element_username_id"));
}
推荐阅读
- ubuntu - docker 运行时主机重启
- c++ - 推力::device_vector 没有正确更新
- unix - /etc/passwd 与 /usr/bin/passwd
- java - 使用 Facebook Marketing API 按名称获取自定义受众
- ansible - Ansible parsing string to boolean fails (variable assignment)
- android - 如何使用 post 方法使用改造来获得数组响应
- load - Incremental Load vs Partial Load in QlikView
- ios - React Native DatePickerIOS Rotate Back to Old Date
- java - android studio:创建android启动画面
- react-native - react native navigate and refresh same screen after delete operation