Java Selenium Webdriver—能够通过firebug定位元素,但在Webdriver上不会出现任何TouchElementException

Java Selenium Webdriver—能够通过firebug定位元素,但在Webdriver上不会出现任何TouchElementException,java,html,selenium,selenium-webdriver,webdriver,Java,Html,Selenium,Selenium Webdriver,Webdriver,发生的事情是,我有这个网页: 下面的div是在上面的屏幕截图中以青色显示的内容。我已经圈出了我要查找的文本: 我尝试过Xpath和CSS。它们都在Firebug中工作,并且都在这个浮动div中很好地定位元素。但是当我运行脚本时,我得到了NoTouchElement异常 -我怀疑的事情: 如您所见,此div是对另一个网页的调用(由 div中的整个html树)。这可能就是原因 Webdriver下了地狱,什么也没找到。但我不知道 如何告诉它看这个窗口 div的作用就像一个浮动弹出窗口,使其余部分变

发生的事情是,我有这个网页: 下面的
div
是在上面的屏幕截图中以青色显示的内容。我已经圈出了我要查找的文本:

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

-我怀疑的事情:

  • 如您所见,此div是对另一个网页的调用(由 div中的整个html树)。这可能就是原因 Webdriver下了地狱,什么也没找到。但我不知道 如何告诉它看这个窗口
  • div的作用就像一个浮动弹出窗口,使其余部分变灰 背景页。不确定这是否有什么关系,但可能是这样 也会制造麻烦
  • 我不认为这是必要的,但这里有一个CSS定位器,我在Firepath中使用,用于定位5040文本

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

    因此,这里的问题是:如果我的xpath/css定位器手动工作,而不是与WebDriver一起工作,那么如何在这些
    td
    中定位此文本?

    请参见
    iframe
    元素-这就是您获得异常的原因

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

    driver.switchTo().frame("Content")
    
    或者(如果由于
    id
    中的空格而无法工作):


    请参阅
    iframe
    元素-这就是您获得异常的原因

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

    driver.switchTo().frame("Content")
    
    或者(如果由于
    id
    中的空格而无法工作):


    请参阅
    iframe
    元素-这就是您获得异常的原因

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

    driver.switchTo().frame("Content")
    
    或者(如果由于
    id
    中的空格而无法工作):


    请参阅
    iframe
    元素-这就是您获得异常的原因

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

    driver.switchTo().frame("Content")
    
    或者(如果由于
    id
    中的空格而无法工作):



    你可能需要切换到iframe?你可能需要切换到iframe?你可能需要切换到iframe?你可能需要切换到iframe?记住,如果你需要返回,一定要从iframe切换回默认内容。空格就在那里,因为我把它们涂白了。谢谢你!在我们说话的时候尝试你的答案。@patricmj是通过driver.switchTo().parentFrame()@它将是
    驱动程序。切换到().defaultContent()
    。谢谢你,patricmj,说得好!令人惊叹的。谢谢你们!记住,如果你需要返回的话,一定要从iframe切换回默认内容。空格就在那里,因为我把它们涂掉了。谢谢你!在我们说话的时候尝试你的答案。@patricmj是通过driver.switchTo().parentFrame()@它将是
    驱动程序。切换到().defaultContent()
    。谢谢你,patricmj,说得好!令人惊叹的。谢谢你们!记住,如果你需要返回的话,一定要从iframe切换回默认内容。空格就在那里,因为我把它们涂掉了。谢谢你!在我们说话的时候尝试你的答案。@patricmj是通过driver.switchTo().parentFrame()@它将是
    驱动程序。切换到().defaultContent()
    。谢谢你,patricmj,说得好!令人惊叹的。谢谢你们!记住,如果你需要返回的话,一定要从iframe切换回默认内容。空格就在那里,因为我把它们涂掉了。谢谢你!在我们说话的时候尝试你的答案。@patricmj是通过driver.switchTo().parentFrame()@它将是
    驱动程序。切换到().defaultContent()
    。谢谢你,patricmj,说得好!令人惊叹的。谢谢你们!