2016-11-23 2 views
1

Ich schreibe Cross-Browser-Testskript mit Selenium Web-Treiber - Java. Meine Firefox-, Chrome- und IE-Browser öffnen und führen das Skript erfolgreich aus. Aber in der Oper öffnet sich nur der Browser. Selbst driver.manage().window().maximize(); funktioniert auch nicht. Öffne einfach den Browser und bleibe bis ich ihn schließe. Wenn ich den Browser manuell schließe, schlägt die Testsuite fehl.Opera-Treiber funktioniert nicht mit Selenium - Java

Hier ist meine Java-Klasse.

package multiBrowser; 

import org.testng.annotations.Test; 
import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.firefox.FirefoxDriver; 
import org.openqa.selenium.firefox.FirefoxProfile; 
import org.openqa.selenium.firefox.internal.ProfilesIni; 
import org.openqa.selenium.ie.InternetExplorerDriver; 
import org.openqa.selenium.opera.OperaDriver; 
import org.testng.annotations.Parameters; 

public class MultiBrowserClass { 

    WebDriver driver; 

    @Test 
    @Parameters("browser") 
    public void multiBrowsers(String browserName) throws InterruptedException{ 

     if(browserName.equalsIgnoreCase("firefox")){ 

      System.setProperty("webdriver.firefox.marionette","D:\\My Work\\Setup\\JAR\\geckodriver.exe"); 
      ProfilesIni profile = new ProfilesIni();  
      FirefoxProfile myprofile = profile.getProfile("default"); 
      driver = new FirefoxDriver(myprofile); 

     } 
     if(browserName.equalsIgnoreCase("chrome")){ 

      System.setProperty("webdriver.chrome.driver", "D:\\My Work\\Setup\\JAR\\driver\\chromedriver.exe"); 
      driver = new ChromeDriver(); 
     } 
     else if(browserName.equalsIgnoreCase("IE")){ 

      System.setProperty("webdriver.ie.driver", "D:\\My Work\\Setup\\JAR\\driver\\IEDriverServer.exe"); 
      driver = new InternetExplorerDriver(); 
     } 
     else if(browserName.equalsIgnoreCase("opera")){ 

      System.setProperty("webdriver.opera.driver", "D:\\My Work\\Setup\\JAR\\driver\\operadriver.exe"); 
      driver = new OperaDriver(); 

     } 

     driver.manage().window().maximize(); 

     driver.navigate().to("https://"); 

     System.out.println(driver.getTitle()); 

     driver.findElement(By.xpath("//div[@id='navbar-main']/ul/li[5]/a")).click();  
     driver.findElement(By.xpath("//div[@id='navbar-main']/ul/li[5]/ul/li/a")).click(); 
     Thread.sleep(3000); 
     driver.findElement(By.name("email")).clear(); 
     driver.findElement(By.name("email")).sendKeys("[email protected]"); 
     driver.findElement(By.name("password")).clear(); 
     driver.findElement(By.name("password")).sendKeys("1qaz2wsx"); 
     Thread.sleep(3000); 
     driver.findElement(By.xpath("//form[@id='loginform']/div[8]/button")).click(); 
     Thread.sleep(5000); 

     if(driver.getPageSource().contains("Welcome [email protected]")){ 
      System.out.println("User Successfully logged in"); 

     }else{ 
      System.out.println("Username or password you entered is incorrect"); 
     } 

     driver.quit(); 

    } 

} 

Hier ist die testng.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"> 
<suite name="Suite"> 

    <!-- firefox --> 

    <test name="FirefoxTestCases"> 
     <parameter name="browser" value="firefox"/> 
     <classes> 
     <class name="multiBrowser.MultiBrowserClass"/> 
     </classes> 
    </test> 


    <!-- chrome --> 

    <test name="ChromeTestCases"> 
     <parameter name="browser" value="chrome"/> 
     <classes> 
     <class name="multiBrowser.MultiBrowserClass"/> 
     </classes> 
    </test> 


    <!-- internet explorer --> 

    <test name="IETestCases"> 
     <parameter name="browser" value="IE"/> 
     <classes> 
     <class name="multiBrowser.MultiBrowserClass"/> 
     </classes> 
    </test> 

    <!-- Opera --> 

    <test name="OperaTestCases"> 
     <parameter name="browser" value="opera"/> 
     <classes> 
     <class name="multiBrowser.MultiBrowserClass"/> 
     </classes> 
    </test> 

</suite> <!-- Suite --> 

I operadriver von this Seite (operadriver_win64.zip) heruntergeladen haben.

Hier ist, wie Opera Browser öffnet.

Opera Browser

Opera Version 41.0.2353.56.

Vielen Dank im Voraus. :)

+0

Es passiert mit der neuesten Version von Opera. Ich habe das gleiche Problem, alle Tests haben aufgehört zu arbeiten. Browser wird mit Daten geöffnet; in der URL. nichts passiert weiter. – Sudeepthi

+0

Also, was hast du gemacht? –

Antwort

1

Ermittelt die Antwort.

System.setProperty("webdriver.chrome.driver", "D:\\My Work\\Setup\\JAR\\driver\\operadriver.exe"); 
driver = new Chro,eDriver(); 

Dann installiert Opera 38. Problem gelöst. :)

+0

Ist es ChromeDriver() oder OperaDriver()? Ich habe auf Opera aufgehört zu laufen, weil ich nicht downgraden wollte. Können Sie Opera davon abhalten, auf die neuesten Versionen zu aktualisieren? – Sudeepthi

+0

Ich habe keine Methode, um die neueste Version der Oper zu testen. Es tut uns leid. :( –

Verwandte Themen