2012-09-03 11 views
7

Ciao Sto usando il server autonomo Selenium insieme all'esecutore di comandi Selenese per testare su Safari su Mac OS X. Im problemi con il fare clic su alcuni pulsanti su pagine specifiche. Gli stessi clic funzionano perfettamente in altri browser come firefox (Windows), chrome (Windows + Mac), IOS simulatori, IE. Anche in grado di ottenere il pulsante tramite id.Confermato ottenendo il testo dei pulsanti utilizzando: getText(). L'unica cosa è che non succede nulla dopo il comando click. Ho provato a utilizzare button.click(), button.submit(). utilizzato anche id, xpath, class per trovare il pulsante. Come ho già detto: sono in grado di ottenere l'id, solo che il clic non funziona. eventuali suggerimenti? parte del codice è:Alcuni clic non funzionano nel browser Safari utilizzando il server autonomo di selenio

public static WebDriver getSafariDriver() 
    { 
     try 
     { 
      DesiredCapabilities capabilities = new DesiredCapabilities(); 
      capabilities.setBrowserName("safari"); 
      capabilities.setJavascriptEnabled(true); 
      CommandExecutor executor = new SeleneseCommandExecutor(new URL("http://localhost:4444/"), new URL("http://www.google.com/"), capabilities); 
      WebDriver driver = new RemoteWebDriver(executor, capabilities); 
      return driver; 
     } catch (MalformedURLException e) 
     { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

C'è qualche soluzione tramite il prompt dei comandi? O qualcos'altro che posso provare o mi sto perdendo? Per favore aiuto.

+0

sto anche di fronte al lo stesso problema. Succede su entrambi i safari Windows e MAC. –

risposta

0

Prova utilizzando JavaScript esecutore

WebElement yourelement= driver.findElement(By.id("btn")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", yourelement); 
0

Ho avuto lo stesso problema. Dopo un lungo periodo di debug, ho scoperto che il problema era che il JS non era stato caricato completamente prima che Safari facesse il binding, quindi ho dovuto aspettare molto tempo dopo il pageload prima di fare il test.

I lato server ha reso il pulsante (reagisce componente) ma la funzione del pulsante è stata implementata quando il documento era pronto.

0

Ho avuto lo stesso problema con Safari 10+, OSX El Capitan e selenio 3.0.1

Un'altra alternativa può essere quella di inviare un tasto INVIO implementato in Python:

from selenium import webdriver 
from selenium.webdriver.common.keys import Keys 

driver = webdriver.Safari() 
driver.get('http://localhost:8000') 
element = driver.find_element_by_id("submit") 
element.send_keys(Keys.RETURN) 
Problemi correlati