Mi sono guardato intorno da un po 'di tempo per trovare una soluzione al mio problema, spero che qualcuno qui possa pensare a qualcosa che potrebbe aiutare.Firefox vede l'elemento in cui PhantomJS non funziona quando si usa Selenium-Webdriver
Ho uno script di selenio funzionante (in Python) che funziona con il driver di Firefox per connettersi su un sito web. Quando si utilizza PhantomJS come driver, non funziona più.
Il modulo è generato da javascript e si trova su un sito Web https. Ecco il codice del input dell'utente:
<script language="JavaScript1.2">
document.writeln("<input class=\"textform\" type=\"text\" id=\"user\" name=\"user\" size=\"" + size + "\" tabindex=1 onFocus=\"hadFocus(true)\">");
</script>
Qui è la parte dello script in cerca di esso: (a lavorare su Firefox, ma non PhantomJS)
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
driver = webdriver.Firefox()
driver.get([MY URL])
print driver.page_source
driver.find_element_by_id("user").clear()
driver.find_element_by_id("user").send_keys([MY USER ID])
driver.find_element_by_id("pass").clear()
driver.find_element_by_id("pass").send_keys([MY PASS])
driver.find_element_by_name("login_btn").click()
html_source = driver.page_source
print html_source
driver.close()
E qui è l'errore che ottengo:
selenium.common.exceptions.NoSuchElementException
se stampo il page_source
solo dopo aver raggiunto la pagina di Firefox mostra il codice sorgente di destra, dove PhantomJS ha solo: <html><head></head><body></body></html>
Pensa a qualcosa che potrebbe essere la causa di questo?
Puoi mostrarci il codice di esempio, non solo l'elemento? È Python o Java che stai usando? Non penso che ci siano collegamenti Javascript per il selenio. –
l'errore significa che non ci sono tag/s da estrarre. puoi scrivere 'page_source' e controllarlo manualmente se il tag è lì. – nickanor
Ho modificato per il codice di esempio. Ho anche provato con find elemento per nome e xpath. Entrambi hanno funzionato con Firefox ma non con PhantomJS. (Su Python) – zigoingoin