在我的 C# 中 Windows Forms使用 Firefox 的应用程序 Selenium WebDriver我需要检查一个元素是否存在,如果不存在,请单击另一个元素。如果有视频,观看后变成W_VIEWED
:
driver.FindElement(By.XPath("//div[@class='video']/a")).Click();
else
{
driver.FindElement(By.XPath("//div[@class='W_VIEWED']/a")).Click();
}
Error 3 Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement 242
最佳答案
你可以通过使用检查一个元素是否存在
bool isElementDisplayed = driver.findElement(By.xpath("element")).isDisplayed()
请记住,findElement
会在找不到元素时抛出异常,因此您需要正确处理它。
在我的一个应用程序中,我通过在单独的函数中检查元素来处理异常:
private bool IsElementPresent(By by)
{
try
{
driver.FindElement(by);
return true;
}
catch (NoSuchElementException)
{
return false;
}
}
调用函数:
if (IsElementPresent(By.Id("element name")))
{
// Do if exists
}
else
{
// Do if does not exists
}
关于c# - 如何检查元素是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27516545/