【问题标题】:Python-selenium iframe switch does not seem to workPython-selenium iframe 开关似乎不起作用
【发布时间】:2018-05-24 11:25:41
【问题描述】:

我正在使用 selenium 的 python 绑定(python 2.7.12、selenium 3.8.0)来从网页中选择 iframe。但这似乎不起作用。这是一个示例代码:

driver.get("http://jsfiddle.net/westonruter/6mSuK/")
print(driver.title)
elem = driver.find_element(By.XPATH, '//iframe[@name="result"]')
driver.switch_to_frame(elem)
print(driver.title)

我正在使用一些包含 iframe 的测试页面。我尝试更改为这个 iframe,并希望第二个打印输出为 HTTPS iframe test by westonruter为了验证我切换到正确的 iframe),但我再次得到相同的输出:

HTTPS iframe test - JSFiddle
HTTPS iframe test - JSFiddle

这里出了什么问题?为什么 selenium 不“切换”到选定的 iframe?

【问题讨论】:

    标签: python selenium iframe


    【解决方案1】:

    Switch 工作正常,但要在切换到 iframe 后获得 title 值,您可能需要这样做

    title = driver.find_element_by_tag_name('title').get_attribute('textContent')
    

    输出为'HTTPS iframe test by westonruter'

    【讨论】:

    • 我其实不想进入标题。我只是想验证我是否真的切换了框架(以便find_element 调用将在该框架中工作)...
    • 但是如果你没有切换然后尝试找到任何元素会返回你NoSuchElementException...
    • @Alex,标题总是只返回父窗口/浏览器标题值。
    • current_url
    【解决方案2】:

    driver.title() 仍将返回浏览器的标题。

    尝试elem.get_attribute('name') 获取框架名称。 如果driver.switch_to_frame(elem) 没有返回任何异常,则它正确切换到框架。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 2020-04-05
      • 2018-08-11
      • 2017-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多