填写必填字段时可以找到此元素:
IWebElement e1SK = Driver.Instance.FindElement(By.XPath(baseXPathSendKeys + "div[2]/textarea"));
如果未填写必填字段,则不应出现上述元素。
测试引发异常:
OpenQA.Selenium.ElementNotVisibleException:元素当前不可见,因此可能无法与进行交互
这是我需要创建一个方法还是比这更简单?如果你能展示一个例子,那将会很有帮助,我对C#和Selenium Webdriver仍然相当新。
我已经读过,我可以使用一个名为findwebelements的东西,然后检查以确保结果的长度为零,但我不确定如何实现它。
答案 0 :(得分:12)
这是解决问题的直接方法:
if (Driver.Instance.FindElements(By.XPath(baseXPathSendKeys + "div[2]/textarea")).Count != 0)
{
// exists
}
else
{
// doesn't exist
}
您可以创建方法Exists(By)
来测试元素:
public bool Exists(By by)
{
if (Driver.Instance.FindElements(by).Count != 0)
{
return true;
}
else
{
return false;
}
}
然后在你想要测试时调用它:
By by = By.XPath(baseXPathSendKeys + "div[2]/textarea")
if (Exists(by))
{
// success
}
答案 1 :(得分:0)
我遇到一个奇怪的情况,即硒没有引发NoSuchElementException异常,但是MakeHttpRequest超时了。
所以我想出了一个主意,那就是我得到了父HTML元素的属性innerHTML,并断言它不包含不需要的元素。
go.mod
答案 2 :(得分:0)
您可以使用以下代码段。如果要在步骤定义方法中编写逻辑,则下面的代码将很方便,因为不建议使用方法嵌套。
ImportError: cannot import name 'is_scalar'