【问题标题】:How to find xpath of an element in a window that's inside another "frame window"如何在另一个“框架窗口”内的窗口中查找元素的 xpath
【发布时间】:2013-06-12 21:14:11
【问题描述】:

我正在尝试查找位于在另一个窗口中打开的窗口中的元素的 xpath,以便在 selenium 的 python 脚本中使用。

页面本质上是一个框架,其中包含另一个页面(想想浏览器窗口中的浏览器)。

我可以在外部浏览器窗口内找到窗口本身的 xpath,但我似乎无法使用 xpath 来选择内部窗口上的任何元素。

这是选择我想要的元素的整体 xpath。

/html/body/div/div[2]/table/tbody/tr/td[2]/form/div/div/div/div/div/table[2]/tbody/tr/td/div/div/div/div/div[2]/div/span/iframe/html/body/table/tbody/tr/td/div[3]/div[2]/div[2]/table/tbody/tr/td[2]/div/a[1]

选择内窗口的xpath是:

/html/body/div/div[2]/table/tbody/tr/td[2]/form/div/div/div/div/div/table[2]/tbody/tr/td/div/div/div/div/div[2]/div/span/iframe

选择内部窗口内的项目(如果直接在内部窗口的页面上)的 xpath 是:

/html/body/table/tbody/tr/td/div[3]/div[2]/div[2]/table/tbody/tr/td[2]/div/a[1]

我已经尝试使用所有这些方法,但无法选择内页上的元素。

这是 Python 代码:

    survivorFrame = driver.find_elements_by_xpath(".//*[@id='theSurvivorIframe']")[0]
    driver.switch_to_frame(survivorFrame)
    elem1 = driver.find_elements_by_xpath(".//*[@id='lea1_ileinner']/a[1]")
    survivorOwner = re.search('>(.*)<', elem1)
    print elem1
    print survivorOwner

【问题讨论】:

    标签: python xpath selenium


    【解决方案1】:

    您必须将控件切换到 iframe 内部,然后尝试与 webelement 交互

    iframe = driver.find_elements_by_tag_name('iframe')[0] 
    driver.switch_to_frame(iframe)
    

    然后从 iframe 出来回到主窗口

    driver.switch_to_default_content()
    

    【讨论】:

    • 这类作品。在切换到 iframe 后尝试在 iframe 中选择一个元素后,该元素仅显示为 [&lt;selenium.webdriver.remote.webelement.WebElement object at 0x108900b50&gt;]
    • 你希望 "survivorOwner = re.search('>(.*)
    • 我让它工作了!它显示为一个列表,因为我有元素而不是元素。非常感谢你的帮助!你救了我好几个小时!
    • 我打算让它搜索 elem1 的文本,但在我从元素中取出 s 后,只使用 elem1.text 就可以了。
    【解决方案2】:

    试试这个:

    driver.switch_to.frame(driver.find_element_by_id('yourframeid'));
    

    yourframeid 是您的框架或 iframe 的 ID

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 1970-01-01
      • 2019-01-06
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多