Je suis nouveau à Phantomjs et j'essaie d'exécuter mes tests de sélénium (python) à l'aide de pilote Phantomjs, mais ce ne seront pas les éléments Web.
Journaux de Ghostdriver: P>
[INFO - 2015-02-27T15:24:40.236Z] GhostDriver - Main - running on port 52653 [INFO - 2015-02-27T15:24:41.075Z] Session [bfd397f0-be94-11e4-ad03-b711254501c8] - page.settings - {"XSSAuditingEnabled":false,"javascriptCanCloseWindows":true,"javascriptCanOpenWindows":true,"javascriptEnabled":true,"loadImages":true,"localToRemoteUrlAccessEnabled":false,"userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X) AppleWebKit/538.1 (KHTML, like Gecko) PhantomJS/2.0.0 Safari/538.1","webSecurityEnabled":true} [INFO - 2015-02-27T15:24:41.075Z] Session [bfd397f0-be94-11e4-ad03-b711254501c8] - page.customHeaders: - {} [INFO - 2015-02-27T15:24:41.075Z] Session [bfd397f0-be94-11e4-ad03-b711254501c8] - Session.negotiatedCapabilities - {"browserName":"phantomjs","version":"2.0.0","driverName":"ghostdriver","driverVersion":"1.2.0","platform":"mac-10.9 (Mavericks)-64bit","javascriptEnabled":true,"takesScreenshot":true,"handlesAlerts":false,"databaseEnabled":false,"locationContextEnabled":false,"applicationCacheEnabled":false,"browserConnectionEnabled":false,"cssSelectorsEnabled":true,"webStorageEnabled":false,"rotatable":false,"acceptSslCerts":false,"nativeEvents":true,"proxy":{"proxyType":"direct"}} [INFO - 2015-02-27T15:24:41.075Z] SessionManagerReqHand - _postNewSessionCommand - New Session Created: bfd397f0-be94-11e4-ad03-b711254501c8 [ERROR - 2015-02-27T15:24:47.242Z] WebElementLocator - _handleLocateCommand - Element(s) NOT Found: GAVE UP. Search Stop Time: 1425050687190 :262 in error
3 Réponses :
J'ai remarqué que ces éléments ne sont pas localisés dans des cas de test à l'aide des méthodes Find_Element par PHANTOMJS Pilote, accessible par JavaScript à l'aide de JavascriptExecutor. Utilisez le script Java pour accéder à l'élément et pour l'action sur un élément.Je espère que cela résoudra votre problème. P>
Merci pour votre réponse. Mais cette solution ne fonctionnera pas pour moi. Je vais devoir faire beaucoup de changements pour le faire fonctionner :(
Il est possible que votre test de sélénium essaie de trouver un élément avant qu'il ne soit chargé. Après une première tentative infructueuse, vous devriez essayer encore et encore et continuer jusqu'à ce que vous trouviez l'élément ou le délai d'attente dépassé. P>
regarder splinter https://splinter.readthedocs.org/en/latest/index .html Il fonctionne avec sélénium et implémente la logique d'attente des éléments. P>
J'attends 10 secondes pour localiser l'élément, après cela une exception de délai d'attente est lancée. Fichier "/Library/python/2.7/site-packages/selenium/webdiver/suppor t / west.py", ligne 71, dans jusqu'à ce que soumise TimeoutException (message) TimeoutException: Message:
SO ... Il ressemble à n'importe quel élément qui utilise Selenium WebDriver WAKDER WAIT utilise réellement un schéma de vote. N'oubliez pas qu'une attente explicite de sélénium est du code que vous définissez pour attendre qu'une certaine condition se produise avant de poursuivre davantage le code. WebDriverWait par défaut appelle l'attente de la confiance toutes les 500 millisecondes jusqu'à ce qu'il revienne avec succès. ( Référence. ) Ce que cela signifie est tous de 500 msecs, des tests de sélénium la condition d'attente. Si vrai, procédez. Si ce n'est pas encore vrai, attendez un autre cycle de fréquence de sondage, puis essayez à nouveau.
et de mes tests, ma conviction est qu'un test de sondage et non-prêt - alors appelez-le d'échouer définitivement des erreurs dans mon ghostdriver. Connectez-vous P>
driver.wait.until(EC.presence_of_element_located((By.XPATH, "//*[@id='special_content_id']//td[contains(.,'" + info.unitId + "')]")))
essayez
temps.sleep (5) code> au lieu de
webDriverwait code>