我需要检查当前网页中是否存在带有selenium的表单元素。 有人知道该怎么做吗?
答案 0 :(得分:2)
有两种方法可以做到这一点。要么使用lefthandedgoat的版本捕获异常,要么使用FindElements方法并检查它的大小,所以像(在C#中使用LINQ):
public bool IsElementPresent(By selector)
{
return driver.FindElements(selector).Any();
}
任何一个选项都可以正常运行,并没有太大的不同。我个人使用另一种方式,但想确保你知道通常有两种方法可以做到这一点。您没有提及某种语言,因此,如果您使用的是特定语言,请告诉我们。
值得注意的是,在Selenium中执行FindElement()时,它正在执行此方法。
答案 1 :(得分:1)
在C#版本的selenium中,如果该元素不存在,它将抛出异常。你可以做这样的事情
public bool Exists(string cssSelector)
{
try
{
browser.FindElement(By.CssSelector(cssSelector));
return true
}
catch (Exception ex){}
return false;
}
var exists = Exists("form");
我不确定webdriver在其他语言中的表现如何。
答案 2 :(得分:0)
你可以使用一对方法:
input.findElements(By.xpath("//....blablalba....")).size() > 0
driver.findElement(By.xpath("//....blablalba....")).isDisplayed()