如何在Selenium页面对象中初始化WebElements

时间:2014-10-30 15:24:27

标签: c# selenium-webdriver

我是Selenium的新手,期待了解更多信息,我正在使用Selenium WebDriver和C#。

这是我发起WebElement

的方式
CarouselSliderNextButton = DriverInitializer.driver
        .FindElement(By.XPath("//a[@class='buttons next']"));

但是如果元素由于某种原因不存在;例如隐藏,然后它不起作用。我知道我可以在我开始之前检查该元素是否存在,但如果我以正确的方式这样做,我很乐意听取专家的意见。

2 个答案:

答案 0 :(得分:0)

我并不是自称是专家,但这就是我的想法:

  • 您没有“启动”网络元素
  • 您找到了一个网络元素
  • 首先,您需要从html文件中找到要查找的元素。您可以在开发者模式下使用Google或Firefox来查找它。我建议你为Firefox安装“Firebug”,这非常有用。
  • 您可以从HTML文件中“看到”但无法找到的元素有多种原因:
  • 1:此元素位于iframe上,此案例要求您先找到此iframe,然后找到该元素
  • 2:此元素尚未显示,例如,只有先将鼠标悬停在特定区域上时,才会显示下拉箭头按钮。

但是你正朝着正确的方向前进。

答案 1 :(得分:0)

如果您尝试初始化WebElement,我会使用:

WebElement element = driver.findElement(By.tagName("div"));

因为大多数DOM都有div标签。 然后在尝试查找存在的元素(并且不是div标签)之后,请检查:

if (element.getTagName().equals("div")){
    System.out.println("Element not found...");
}