element not found
我在 Firefox GeckoDriver 浏览器中收到错误消息
当我从 window[1] 切换到 frame[0] 时,回到 window[1],然后单击关闭框架按钮。
我想继续使用GeckoDriver
,因为我遇到了性能问题ChromeDriver
。抱歉,这是一个内部网站,我无法分享HTML
.
- 我已执行以下操作来查明问题。
- 使用完全相同的代码进行测试,并在 Chrome 驱动程序中正常工作
- 当我切换到窗口 [1] 单击
openframe
按钮,然后单击closeframe
按钮,而不切换到框架 [0] 时,在 Firefox 中工作。 - 我可以切换到 frame[0],切换回 window[1] 并执行 a
driver.close()
,它会关闭 window[1]。 - 从 frame[0] 切换回来后,我可以读取
driver.page_source
来自 window[1] 的内容,并看到该元素仍在page_source
并且没有更改。 - 我可以从 frame[0] 切换回 window[0] 并单击按钮重新打开 window[1] 并且可以正常工作。然后我可以单击打开和关闭框架按钮。
所以问题只在于从 frame[0] 切换回 window[1],然后尝试在 Firefox GeckoDriver 中单击 window[1] 中的元素。
Python:2.7
Selenium:3.0.1
GeckoDriver:v0.13.0
Firefox:51.0.1
这是代码:
firefox_capabilities = DesiredCapabilities.FIREFOX
firefox_capabilities['marionette'] = True
driver = webdriver.Firefox(capabilities=firefox_capabilities)
driver.get('www.internalwebsite.com')
driver.find_element_by_id('opensnewwindow').click()
driver.switch_to_window(driver.window_handles[1])
driver.find_element_by_id('opennewframe').click()
driver.switch_to_frame(0)
//read contents
driver.switch_to_window(driver.window_handles[1])
driver.find_element_by_id('closeframe').click()
错误:
selenium.common.exceptions.NoSuchElementException:消息:无法定位元素:[id="closeframe"]