如何使用webdriver定位Web元素:

时间:2017-04-04 09:33:53

标签: html html5 selenium xpath selenium-webdriver

我们如何找到html为的网页元素:

<div class="wgt dashlet-pane-flowing vbox h-stretch" style="flex: 8 8 0%;">

我试过以下:

driver.findElement(By.cssSelector(".wgt.dashlet-pane-flowing.vbox.h-stretch"));

driver.findElement(By.xpath("//div[@class='wgt dashlet-pane-flowing vbox h-stretch']"));

但失败,错误无法找到网页元素。

任何帮助都会很棒.. 提前谢谢。

[enter image description here

3 个答案:

答案 0 :(得分:0)

目标div可能会动态生成,因此您可以尝试在DOM中等待其出现:

WebDriverWait wait = new WebDriverWait(webDriver, 10);
wait.until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[@class='wgt dashlet-pane-flowing vbox h-stretch']")));

答案 1 :(得分:0)

有几个原因你会得到这个错误。

  1. 元素在不同的框架中(我不认为是这种情况)
  2. 当您试图找出时(可能是这种情况),它未正确加载。请阅读明确等待,它将解决此问题。我不想直接回答,但有人会这样做。 :)
  3. 你的xpath错了。你可以使用firefox的firebug和xpather插件来检查它。
  4. 您已登陆错误页面(可以直观地查看)

答案 2 :(得分:0)

如果一切都很好并且您仍然无法找到元素,请尝试以下xpath

//div[contains(@style,'flex: 8 8 0%')]"