драйвер Opera не работает с Selenium - Java

Я пишу кроссбраузерный тестовый скрипт с использованием веб-драйвера Selenium - Java. Мои браузеры firefox, chrome и IE открываются и успешно запускают скрипт. Но, в опере открывается только браузер. Даже driver.manage().window().maximize(); тоже не работает. Просто откройте браузер и оставайтесь, пока я его не закрою. Когда я закрываю браузер вручную, происходит сбой набора тестов.

Вот мой класс java.

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();

    }

}

Вот 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 -->

Я загрузил драйвер Operadriver с этой страницы (operadriver_win64.zip).

Вот как открывается браузер Opera.

Браузер Opera

Версия Opera - 41.0.2353.56.

Заранее спасибо. :)


person Manuli    schedule 23.11.2016    source источник
comment
Это происходит с последней версией Opera. У меня такая же проблема все тесты перестали работать. Браузер открывается с данными; в URL. дальше ничего не происходит.   -  person Sudeepthi    schedule 23.11.2016
comment
Итак, что ты сделал?   -  person Manuli    schedule 24.11.2016


Ответы (1)


Разобрался с ответом.

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

Потом установил оперу 38. Проблема решена. :)

person Manuli    schedule 24.11.2016
comment
Это ChromeDriver () или OperaDriver ()? Я перестал работать в Opera, так как не хотел переходить на более раннюю версию. Можете ли вы остановить обновление Opera до последних версий? - person Sudeepthi; 28.11.2016
comment
У меня нет возможности протестировать последнюю версию оперы. Извините. :( - person Manuli; 29.11.2016