nota: una soluzione in selenio o wrapper API Splinter per Selenium va bene!Interagire con iFrame utilizzando Splinter/selenio [Python]
Ho riscontrato problemi di interazione con gli iframe su Twitter.com utilizzando Splinter API per Python.
Per esempio,
with Browser('firefox', profile_preferences= proxySettings) as browser:
#...login and do other stuff here
browser.find_by_id('global-new-tweet-button').click()
questo porta in primo piano una finestra di pop-up a digitare in un tweet.
Come posso interagire con questa nuova casella utilizzando Splinter a: 1) Compilare un messaggio 2) cliccare su "Tweet" (inviare) ..programmatically naturalmente.
Ho provato a ispezionare l'elemento ma non sembra essere annidato all'interno di un iframe, tuttavia esso mira a un iframe. Quindi non sono sicuro di come trovare/interagire con gli elementi in questo pop-up.
Ho provato a digitare manualmente in un messaggio facendo clic sul pulsante Tweet programmazione:
browser.find_by_css('.btn.primary-btn.tweet-action.tweet-btn.js-tweet-btn').click()
..ma ottengo l'errore:
ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with
Stacktrace:
at fxdriver.preconditions.visible (file:///var/folders/z1/8rqrglqn2dj8_yj1z2fv5j700000gn/T/tmppRsJvd/extensions/[email protected]/components/command-processor.js:10092)
at DelayedCommand.prototype.checkPreconditions_ (file:///var/folders/z1/8rqrglqn2dj8_yj1z2fv5j700000gn/T/tmppRsJvd/extensions/[email protected]/components/command-processor.js:12644)
at DelayedCommand.prototype.executeInternal_/h (file:///var/folders/z1/8rqrglqn2dj8_yj1z2fv5j700000gn/T/tmppRsJvd/extensions/[email protected]/components/command-processor.js:12661)
at DelayedCommand.prototype.executeInternal_ (file:///var/folders/z1/8rqrglqn2dj8_yj1z2fv5j700000gn/T/tmppRsJvd/extensions/[email protected]/components/command-processor.js:12666)
at DelayedCommand.prototype.execute/< (file:///var/folders/z1/8rqrglqn2dj8_yj1z2fv5j700000gn/T/tmppRsJvd/extensions/[email protected]/components/command-processor.js:12608)
ho strettamente voglio raggiungere il mio obiettivo con Splinter così per favore non offrire alternative, so che ci sono altri modi. Grazie in anticipo!