je recevoir une erreur, element not found
dans le navigateur Firefox GeckoDriver
Selenium - NoSuchElementException après passage d'une trame [0] à la fenêtre [1] - Erreur Firefox GeckoDriver - python
quand je passe de la fenêtre [1] cadre [0], retour à la fenêtre [1], puis cliquez sur le bouton fermer le cadre. Je veux continuer à utiliser GeckoDriver
parce que j'avais des problèmes de performance avec ChromeDriver
. Désolé, il s'agit d'un site interne et je ne peux pas partager le HTML
.
- J'ai fait ce qui suit pour identifier le problème.
- testé avec même code et fonctionne correctement dans le pilote Chrome
- Works dans Firefox quand je passe à la fenêtre [1] cliquez sur le bouton
openframe
, puis cliquez sur le boutoncloseframe
, sans passer au cadre [0]. - Je peux passer à la trame [0], revenir à la fenêtre [1] et faire
driver.close()
et il fermera la fenêtre [1]. - Je peux lire le
driver.page_source
à partir de la fenêtre [1] après le retour de la trame [0] et voir que l'élément est toujours dans lepage_source
et n'a pas changé. - Je peux passer de l'image [0] à la fenêtre [0] et cliquer sur le bouton pour rouvrir la fenêtre [1] et cela fonctionne correctement. Ensuite, je peux cliquer sur les boutons d'ouverture et de fermeture du cadre.
Le problème se trouve juste sur le passage du cadre [0] Retour à la fenêtre [1], puis essayer de cliquer sur un élément dans la fenêtre [1] dans Firefox GeckoDriver.
Python: 2.7
Sélénium: 3.0.1
GeckoDriver: v0.13.0
Firefox: 51.0.1
Voici le code:
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()
Erreur:
selenium.common.exceptions.NoSuchElementException: Message: Unable to locate element: [id="closeframe"]
Vous utilisez des index pour la commutation, êtes-vous sûr que vos index sont corrects après l'ouverture/fermeture des trames? Essayez de changer de nom de cadre et de mainWindow. – Moshisho