【发布时间】:2017-02-08 11:24:55
【问题描述】:
我在 Firefox GeckoDriver 浏览器中收到错误 element not found
当我从window[1]切换到frame[0]时,再回到window[1],然后点击关闭frame按钮。
我想继续使用GeckoDriver,因为我遇到了ChromeDriver 的性能问题。抱歉,这是一个内部网站,我无法分享 HTML。
- 我已执行以下操作来查明问题。
- 使用完全相同的代码进行测试,并在 Chrome 驱动程序中正常工作
- 当我切换到窗口 [1] 单击
openframe按钮,然后单击closeframe按钮时,在 Firefox 中工作,而不切换到框架 [0]。 - 我可以切换到frame[0],切换回window[1]并执行
driver.close(),它会关闭window[1]。 - 从 frame[0] 切换回来后,我可以从 window[1] 读取
driver.page_source并看到该元素仍在page_source中并且没有更改。 - 我可以从 frame[0] 切换回 window[0] 并单击按钮重新打开 window[1] 并且可以正常工作。然后我可以点击打开和关闭框架按钮。
所以问题只在于从 frame[0] 切换回 window[1],然后尝试在 Firefox GeckoDriver 中单击 window[1] 中的元素。
Python:2.7
硒:3.0.1
GeckoDriver:v0.13.0
火狐: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"]
【问题讨论】:
-
您正在使用索引进行切换,您确定打开/关闭帧后您的索引正确吗?尝试按框架名称和主窗口切换。
标签: javascript python selenium geckodriver firefox-marionette