2016-11-23 10 views
1

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

Это мой класс 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 из this страницы (operadriver_win64.zip).

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

Opera Browser

Opera версии 41.0.2353.56.

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

+0

Это происходит с последней версией Opera. У меня такая же проблема, что все тесты перестали работать. Браузер открывается с данными; в URL. ничего не происходит дальше. – Sudeepthi

+0

Итак, что вы сделали? –

ответ

1

Выяснил ответ.

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

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

+0

Это ChromeDriver() или OperaDriver()? Я перестал работать в Opera, поскольку я не хотел понижать рейтинг. Можете ли вы остановить Opera от обновления до последних версий? – Sudeepthi

+0

У меня нет способа протестировать последнюю версию оперы. Прости. :( –