Перейти к содержимому

Фотография

Selenide - как задать тип браузера в коде?


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 elvis

elvis

    Постоянный участник

  • Members
  • PipPipPip
  • 189 сообщений
  • Город:Tallinn


Отправлено 22 сентября 2015 - 12:12

Нашёл, что селениду передаётся тип браузера с командной строки, но, честно говоря, мне не особо нравится писать кучу лишнего в командной строке лишь для того, чтобы запустить пару тестов да и частенько запускаю их в IDE, поэтому хотелось бы узнать как указать Selenide, что я хочу запустить phantomjs driver на уровне кода? Ещё было бы неплохо узнатькак указать это в профиле maven, чтобы selenide это понял. Есть идеи?


  • 0

#2 Vad1m198

Vad1m198

    Активный участник

  • Members
  • PipPip
  • 115 сообщений
  • ФИО:Вадим


Отправлено 22 сентября 2015 - 13:45

Configuration.browser = "phantomjs";

 

   * Supported values: "chrome", "firefox", "ie", "htmlunit", "phantomjs", "opera"


  • 0

#3 Saga

Saga

    Новый участник

  • Members
  • Pip
  • 37 сообщений
  • ФИО:Maryna Kolesnik
  • Город:Киев


Отправлено 22 сентября 2015 - 13:52

Configuration.browser="phantomjs"
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.2.0</version>
</dependency>

  • 0

#4 M@ks

M@ks

    Новый участник

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Гриневич Максим

Отправлено 22 сентября 2015 - 13:54

Я себе для небольших тестов сделал класс Drivers и вначале тестов передаю селениду конкретный драйвер

 

Не уверен на 100% правильность, но работает как с реальными браузерами, так и с мобильными через appium

public class Drivers {

	private static WebDriver driver = null;
	private static AndroidDriver andrDrv = null;
	
	public  Drivers() {
		System.out.println("Drivers initiated");
	}

	public WebDriver getChromeDriver(){
		System.setProperty("webdriver.chrome.driver", "c:/Program Files (x86)/Google/Chrome/Application/chromedriver.exe");

    	return driver = new ChromeDriver();
	}
	
	public AndroidDriver getAndroidChromeDriver() throws MalformedURLException{

		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(CapabilityType.BROWSER_NAME, "BROWSER"); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.
		capabilities.setCapability("platformName", "Android");
		capabilities.setCapability("deviceName", "Testing");
		
		return andrDrv = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	}
	
	public AndroidDriver getAndroidSpecificAppDriver() throws MalformedURLException {
		
		File classpathRoot = new File(System.getProperty("user.dir"));
		File appDir = new File(classpathRoot, "/ContactManager");
		File app = new File(appDir, "ContactManager.apk");
	
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.
		capabilities.setCapability("platformName", "Android");
		capabilities.setCapability(CapabilityType.VERSION, "4.4");
		capabilities.setCapability("deviceName", "Android");
		capabilities.setCapability("app", app.getAbsolutePath());
		capabilities.setCapability("appPackage", "com.example.android.contactmanager");
		capabilities.setCapability("appActivity", ".ContactManager");

		return andrDrv = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	}
	public AndroidDriver getAndroidCalculatorDriver() throws MalformedURLException {
		DesiredCapabilities capabilities = new DesiredCapabilities();
		capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); //Name of mobile web browser to automate. Should be an empty string if automating an app instead.
		capabilities.setCapability("platformName", "Android");
		capabilities.setCapability(CapabilityType.VERSION, "4.4");
		capabilities.setCapability("deviceName", "Android");
		capabilities.setCapability("appPackage", "com.android.calculator2");
		capabilities.setCapability("appActivity", ".Calculator");

		return andrDrv= new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
	}
	public void closeDriver(){
		if (driver != null){
			driver.close();
		}
		if (andrDrv !=null) {
			andrDrv.close();
		}
		
	}

а вот тесты вызывающие каждый свой браузер

	//This is the base class to run tests
	public Drivers drvs = new Drivers();
	
	@Before
	public void setUp() throws Exception {
		
		
	    //This class to initiate tests 
	}
	
	@Test
	public void searchQueryInFirefox(){
		//Run simple specific_web_page test using default Firefox browser
		//Firefox is a default driver for Selenide
		openHome();
		searchQuery("John");
		
		closeHome();
	}
	
	@Test
	public void searchQueryInChrome(){
		//Run simple specific_web_page test using Google Chrome browser 
		WebDriverRunner.setWebDriver(drvs.getChromeDriver());

		openHome();
		searchQuery("John");
		
		closeHome();
	}
	
	@Test
	public void searchQueryInAndroidBrowser() throws Exception{
		//Run simple psa-software.com test using default browser on Android emulator
		WebDriverRunner.setWebDriver(drvs.getAndroidChromeDriver());
		
		openHome();
		searchQuery("John");
		
		closeHome();
	}
	
	@Test
	public void RunAndroidSpecificAppTest() throws Exception{
		//Run simple android application test using ContactManager application
		WebDriverRunner.setWebDriver(drvs.getAndroidSpecificAppDriver());
		$(By.name("Add Contact")).click();

		$(By.className("android.widget.EditText"),0).sendKeys("Some Name");

		$(By.className("android.widget.EditText"),2).sendKeys("Some@example.com");
		$(By.name("Save")).click();
		
		if( $(By.className("android.widget.TextView"),0).getText().equalsIgnoreCase("Unfortunately, Contact Manager has stopped.")){
			System.out.println($(By.className("android.widget.TextView"),0).getText());
			Assert.fail();
		} 

		
		closeWebDriver();
	}
	
	
	@Test
	public void AndroidCalculatorTest() throws Exception{
		//Run simple android application test using standard application - Calculator
		WebDriverRunner.setWebDriver(drvs.getAndroidCalculatorDriver());
		$(By.name("6")).click();
		$(By.name("×")).click();
		$(By.name("4")).click();
		$(By.name("=")).click();
		$(By.className("android.widget.EditText"),0).shouldHave(text("24"));
		
		closeWebDriver();
	}
	

  • 1
Мой блог - «Я тестер!»


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных