Selenium Webdriver - 能够通过firebug定位元素,但在Webdriver上获取nosuchelementexception

时间:2015-07-13 21:18:02

标签: java html selenium selenium-webdriver webdriver

我有这个网页会发生什么: main1 以下div是上面屏幕截图中青色可见的内容。我已经绕过了我试图找到的文字: enter image description here

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

- 我怀疑:

  1. 如您所见,此div是对另一个网页的调用(由...表示) div中的整个html树)。这可能是原因 Webdriver下地狱,没有找到任何东西。但我不知道 如何告诉它在这个窗口中查看。
  2. div就像一个漂浮的弹出窗口,让剩下的部分变得灰暗 背景页面。不确定这是否有任何关系,但可能是 也造成了麻烦。
  3. 我认为没有必要,但这是我在Firepath中使用的CSS定位器之一,用于查找5040文本。

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

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

1 个答案:

答案 0 :(得分:3)

查看iframe元素 - 这是您获得异常的原因。

在找到元素之前,您需要切换到iframe

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

或者(如果由于id中的空格而无效):

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