# Selenium Problem mit Browsern



## Harry05 (11. Nov 2015)

Aloha Leute,

ich habe ein problem mit selenium da ich ein browsercross test schreibe speziel mit den browsern:

internet explorer ver. 11.0.24
opera ver. 33.0.1990.58
safari ver. 5.1.7
htmlUnit ver. ?????????

Zu 1 Internent explorer
das einfühgen in felder geht ein Buchstarbe pro 4 sek wenn nicht länger.

Zu 2 Opera
fühlt felder aus aber keine reaktion auf click auf Button

Zu 3 safari
kann nicht auf nächste seite clicken

zu 4 htmlUnit
findet garnicht die elemente doch die seite ist geladen glaube ich. !!!??

Benutze Testng als documentation

```
public class VerifyTitle {
WebDriver driver;
   /**
    * This function will execute before each Test tag in testng.xml
    * @param browser
    * @throws Exception
    */

   @BeforeTest
   @Parameters("browser")
   public void browserladen(String browserName){

     if (browserName.equalsIgnoreCase("firefox")) {
       driver = new FirefoxDriver();  
     }else if (browserName.equalsIgnoreCase("chrome")) {
       System.setProperty("webdriver.chrome.driver", "C:\\Users\\...\\Desktop\\eclipse Java\\Webdriver\\chromedriver.exe");
       driver = new ChromeDriver();
     }else if (browserName.equalsIgnoreCase("ie")) {
       System.setProperty("webdriver.ie.driver", "C:\\Users\\...\\Desktop\\eclipse Java\\Webdriver\\IEDriverServer.exe");
       driver = new InternetExplorerDriver();
     }else if (browserName.equalsIgnoreCase("safari")) {
       driver = new SafariDriver();
     }else if (browserName.equalsIgnoreCase("opera")) {
       System.setProperty("webdriver.opera.driver", "C:\\Users\\...\\Desktop\\eclipse Java\\Webdriver\\operadriver.exe");
       driver = new OperaDriver();
     }else if (browserName.equalsIgnoreCase("htmlUnit")) {
       driver = new HtmlUnitDriver();    
     }
     driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//     System.out.println(driver.getPageSource());
   }

   @Test(priority=1)
   public void ladeSeite(){
//     driver.manage().window().maximize();
     driver.navigate().to(url);  
    
   }
  
   @Test(priority=2)
   public void eintragenLogin(){
     driver.findElement(By.name("username")).sendKeys(benutzer);
     driver.findElement(By.name("password")).sendKeys(pwd);
     driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS);
     driver.findElement(By.partialLinkText("Anmelden")).click();
    
    
   }
   @Test(priority=2)
   public void test(){
     driver.findElement(By.xpath("html/body/div[2]/div[2]/div/div/div/div/div[1]/div/div/div[2]/div[2]/div[1]/div/table[2]")).click();;
     driver.findElement(By.xpath("html/body/div[2]/div[2]/div/div/div/div/div[1]/div/div/div[2]/div[2]/div[1]/div/table[3]")).click();
     driver.findElement(By.xpath("html/body/div[2]/div[2]/div/div/div/div/div[1]/div/div/div[2]/div[2]/div[1]/div/table[4]")).click();
    
   }

}
```

mit dieser datei wird der Test aufgerufen crossBrowser.xml


```
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Suite">
<!--
   <test name="FirefoxCrossBrowser">
     <parameter name="browser" value="firefox"></parameter>
     <classes>
       <class name="crossBrowser.VerifyTitle" />
     </classes>
   </test>
  
   <test name="SafariCrossBrowser">
     <parameter name="browser" value="safari"></parameter>
     <classes>
       <class name="crossBrowser.VerifyTitle" />
     </classes>
   </test>-->
    <!--
   <test name="IeCrossBrowser">
     <parameter name="browser" value="ie"></parameter>
     <classes>
       <class name="crossBrowser.VerifyTitle" />
     </classes>
   </test>
  
   <test name="OperaCrossBrowser">
     <parameter name="browser" value="opera"></parameter>
     <classes>
       <class name="crossBrowser.VerifyTitle" />
     </classes>
   </test>
  
   <test name="ChromeCrossBrowser">
     <parameter name="browser" value="chrome"></parameter>
     <classes>
       <class name="crossBrowser.VerifyTitle" />
     </classes>
   </test>
   -->
   <test name="HtmlUnitCrossBrowser">
     <parameter name="browser" value="htmlUnit"></parameter>
     <classes>
       <class name="crossBrowser.VerifyTitle" />
     </classes>
   </test>
    <!-- Test -->
</suite> <!-- Suite -->
```


----------



## Joose (11. Nov 2015)

Harry05 hat gesagt.:


> ich habe ein problem mit selenium da ich ein browsercross test schreibe speziel mit den browsern:
> 
> internet explorer ver. 11.0.24
> opera ver. 33.0.1990.58
> ...



Zur Performance mit dem InternetExplorer:
Ja die Performance im vom "sendKeys" ist bei keinem Browser wirklich schnell (was ich bisher gesehen habe).
Hast du das Problem nur mit dieser einen Version oder generell mit dem IE11?
Wir hatten letztens ein Projekt und haben die Anwendung mittels IE und Selenium getestet, leider war die Performance hier nicht gerade die beste (hatte immer wieder Abstürze des Treibers und die Dauer war mit 20h+ auch ned beschrauschend). Anfänglich hatten wir die Eingabe von Werten ebenfalls über "sendKeys" gemacht. Das Problem bei jedem sendKeys schickt Selenium eine Request an den Browser um das Feld zu füllen.
Wir haben es so gelöst das wir ein dynamisch ein Javascript zusammenbauen welches für die Felder die Werte setzt. Diese Javascript haben wir dann von Selenium ausführen lassen (ging schon deutlich schneller).

Zu den anderen Problemen kann ich leider nicht viel sagen.


----------

