Selenium Webdriver - 能够通过 firebug 定位元素,但在 Webdriver 出现 nosuchelementexception

Selenium Webdriver - Able to locate elements through firebug, but getting nosuchelementexception at Webdriver

我有这个网页: 下面的 div 是上面屏幕截图中青色可见的内容。我圈出了我要查找的部分文字:

我试过 Xpath 和 CSS。它们都在 Firebug 中工作,并且它们都在这个浮动 div 中很好地定位元素。但是当我 运行 我的脚本时,我得到了 nosuchelement 异常。

-我怀疑的事情:

  1. 如您所见,这个div是对另一个网页的调用(由 div 内的整个 html 树)。这可能是原因 Webdriver 去地狱,没有找到任何东西。但我不知道 如何让它在 window.
  2. 中查看
  3. div 就像一个浮动的弹出窗口,将其余部分变灰 背景页面。不确定这是否有任何关系,但可能是 也惹事了

我认为没有必要,但这是我在 Firepath 中使用并用于定位 5040 文本的 CSS 定位器之一。

driver.findElement(By.cssSelector(".feature>tbody>tr>td[width='312']")

所以这里的问题是:如果我的 xpath/css 定位器手动工作但不使用 WebDriver,我如何在这些 td 中找到此文本?

查看 iframe 元素 - 这就是您遇到异常的原因。

您需要切换到 iframe 才能找到元素:

driver.switchTo().frame("Content")

或者(如果由于 id 中的空格而无法正常工作):

driver.switchTo().frame(driver.findElement(By.cssSelector("iframe[id$=Content]"));